最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

asp.net生成高質(zhì)量縮略圖通用函數(shù)(c#代碼),支持多種生成方式

 更新時間:2008年08月04日 09:22:28   作者:  
這兩天正在研究報表中餅圖的繪圖方法,文章中的某些做法值得參考.
/// <summary>
        /// 生成縮略圖
        /// </summary>
        /// <param name="originalImagePath">源圖路徑(物理路徑)</param>
        /// <param name="thumbnailPath">縮略圖路徑(物理路徑)</param>
        /// <param name="width">縮略圖寬度</param>
        /// <param name="height">縮略圖高度</param>
        /// <param name="mode">生成縮略圖的方式</param>    
        public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
        {
            Image originalImage = Image.FromFile(originalImagePath);

            int towidth = width;
            int toheight = height;

            int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;        

            switch (mode)
            {        
                case "HW"://指定高寬縮放(可能變形)                
                    break;
                case "W"://指定寬,高按比例                    
                    toheight = originalImage.Height * width/originalImage.Width;
                    break;
                case "H"://指定高,寬按比例
                    towidth = originalImage.Width * height/originalImage.Height;                    
                    break;        
                case "Cut"://指定高寬裁減(不變形)                
                    if((double)originalImage.Width/(double)originalImage.Height > (double)towidth/(double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height*towidth/toheight;
                        y = 0;
                        x = (originalImage.Width - ow)/2;
                    }
                    else
                    {
                        ow = originalImage.Width;
                        oh = originalImage.Width*height/towidth;
                        x = 0;
                        y = (originalImage.Height - oh)/2;
                    }
                    break;                    
                default :
                    break;
            }    

            //新建一個bmp圖片
            Image bitmap = new System.Drawing.Bitmap(towidth,toheight);

            //新建一個畫板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //設(shè)置高質(zhì)量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //設(shè)置高質(zhì)量,低速度呈現(xiàn)平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空畫布并以透明背景色填充
            g.Clear(Color.Transparent);        

            //在指定位置并且按指定大小繪制原圖片的指定部分
            g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight), 
                new Rectangle(x, y, ow,oh),
                GraphicsUnit.Pixel);

            try
            {            
                //以jpg格式保存縮略圖
                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch(System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();                        
                g.Dispose();
            }
        }

相關(guān)文章

  • AspNetPager與Socut.Data使用方法

    AspNetPager與Socut.Data使用方法

    最近對AspNetPager與Socut.Data這兩個控件產(chǎn)生了濃厚的興趣,這兩個控件配合可以減輕很多程序員編寫代碼的壓力。ASpNetPager為分頁控件,而Socut.Data為數(shù)據(jù)操作控件,ACCESS,MSSQL都可以。
    2008-10-10
  • asp.net簡單生成驗(yàn)證碼的方法

    asp.net簡單生成驗(yàn)證碼的方法

    這篇文章主要介紹了asp.net簡單生成驗(yàn)證碼的方法,涉及asp.net生成隨機(jī)數(shù)與繪制圖片的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • asp.net實(shí)現(xiàn)生成靜態(tài)頁并添加鏈接的方法

    asp.net實(shí)現(xiàn)生成靜態(tài)頁并添加鏈接的方法

    這篇文章主要介紹了asp.net實(shí)現(xiàn)生成靜態(tài)頁并添加鏈接的方法,非常實(shí)用的功能,需要的朋友可以參考下
    2014-07-07
  • .NET9?AOT部署方案詳解

    .NET9?AOT部署方案詳解

    文章詳細(xì)介紹了.NET?AOT(Ahead-of-Time)和JIT(Just-in-Time)兩種編譯和部署方式的對比,包括它們的優(yōu)點(diǎn)和缺點(diǎn),AOT適合快速啟動、內(nèi)存占用低、性能穩(wěn)定的場景,這篇文章主要介紹了.NET9?AOT部署,需要的朋友可以參考下
    2025-01-01
  • 微信語音上傳 下載功能實(shí)例代碼

    微信語音上傳 下載功能實(shí)例代碼

    這篇文章主要介紹了微信語音上傳 下載功能實(shí)例代碼,需要的朋友可以參考下
    2017-08-08
  • ASP.NET MVC下拉框聯(lián)動實(shí)例解析

    ASP.NET MVC下拉框聯(lián)動實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC下拉框聯(lián)動實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • .NetCore獲取Json和Xml格式的配置信息

    .NetCore獲取Json和Xml格式的配置信息

    本篇將和大家分享的是如何獲取Json和Xml格式的配置信息,主要介紹的是Configuration擴(kuò)展方法的使用,對.netcore 獲取json和xml格式的配置信息的相關(guān)知識,感興趣的朋友一起看看吧
    2017-09-09
  • asp.net(C#)解析Json的類代碼

    asp.net(C#)解析Json的類代碼

    現(xiàn)在json因?yàn)檩p型,越來越流行,部門內(nèi)部的數(shù)據(jù)標(biāo)準(zhǔn)趨向于json,所以開始學(xué)習(xí)。
    2009-12-12
  • sqlserver 刪除重復(fù)記錄處理(轉(zhuǎn))

    sqlserver 刪除重復(fù)記錄處理(轉(zhuǎn))

    刪除重復(fù)記錄有大小關(guān)系時,保留大或小其中一個記錄
    2011-07-07
  • Asp.Net上傳圖片同時生成高清晰縮略圖

    Asp.Net上傳圖片同時生成高清晰縮略圖

    這篇文章主要介紹了Asp.Net上傳圖片同時生成高清晰縮略圖的方法,需要的朋友可以參考下
    2015-09-09

最新評論

保山市| 商城县| 南江县| 鄂托克旗| 吉林市| 宁蒗| 永丰县| 永泰县| 怀化市| 桃源县| 济南市| 孟村| 綦江县| 东安县| 承德县| 桐柏县| 家居| 星座| 淳安县| 威远县| 平阳县| 元江| 长垣县| 虹口区| 武城县| 海安县| 基隆市| 大姚县| 赤水市| 乌兰浩特市| 永嘉县| 岳普湖县| 大丰市| 娄底市| 方山县| 会泽县| 巴东县| 连江县| 得荣县| 珲春市| 伽师县|