C# 生成縮略圖、轉換圖片大小


轉載自:http://www.wxzzz.com/1413.html

該方法可以將現有路徑中的一個圖片文件轉換為指定大小的圖片。

如果你是Image對象需要轉換呢,可以自己更改下這個方法是很簡單的,刪掉部分代碼即可。

 

/// <summary>
        /// 生成縮略圖
        /// </summary>
        /// <param name="localImagePath">圖片地址</param>
        /// <param name="thumbnailImagePath">縮略圖地址</param>
        /// <param name="width">圖片寬度</param>
        /// <param name="height">圖片高度</param>
        /// <param name="p"></param>
        public static void GetThumbnail(string localImagePath, string thumbnailImagePath, int width, int height)
        {
            System.Drawing.Image serverImage = System.Drawing.Image.FromFile(localImagePath);
            //畫板大小
            int towidth = width;
            int toheight = height;
            //縮略圖矩形框的像素點
            int x = 0;
            int y = 0;
            int ow = serverImage.Width;
            int oh = serverImage.Height;
 
            if (ow > oh)
            {
                toheight = serverImage.Height * width / serverImage.Width;
            }
            else
            {
                towidth = serverImage.Width * height / serverImage.Height;
            }
            //新建一個bmp圖片
            System.Drawing.Image bm = new System.Drawing.Bitmap(width, height);
            //新建一個畫板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm);
            //設置高質量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            //設置高質量,低速度呈現平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空畫布並以透明背景色填充
            g.Clear(System.Drawing.Color.White);
            //在指定位置並且按指定大小繪制原圖片的指定部分
            g.DrawImage(serverImage, new System.Drawing.Rectangle((width - towidth) / 2, (height - toheight) / 2, towidth, toheight),
                0, 0, ow, oh,
                System.Drawing.GraphicsUnit.Pixel);
            try
            {
                //以jpg格式保存縮略圖
                bm.Save(thumbnailImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                serverImage.Dispose();
                bm.Dispose();
                g.Dispose();
            }
        }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM