縮圖縮圖縮圖
C#做縮圖好像蠻簡單的
筆記一下!!!
Image.GetThumbnailImage 方法
傳回這個 Image 的縮圖。
命名空間: System.Drawing
組件: System.Drawing (在 system.drawing.dll 中)
組件: System.Drawing (在 system.drawing.dll 中)
參數
- thumbWidth
- 要求的縮圖影像的寬度 (單位為像素)。
- thumbHeight
- 要求的縮圖影像的高度 (單位為像素)。
- callback
- Image.GetThumbnailImageAbort 委派。在 GDI+ 1.0 版中,不使用委派。即使如此,您必須建立委派,並在這個參數中傳遞參考給該委派。
- callbackData
- 必須是 Zero。
傳回值
Image,表示縮圖。Image img = Image.FromFile("PATH"); img.GetThumbnailImage(Width, Height, null, IntPtr.Zero).Save("thumb_" + filename + ext);
還有另一種方法是用Graphic的DrawImage()
威力比較強大~
Graphics.DrawImage 方法
(Image, Rectangle, Rectangle, GraphicsUnit)
以指定的大小,在指定的位置繪製所指定 Image 之指定部分。
參數
- image
- 要繪製的 Image。
- destRect
- Rectangle 結構,指定繪製影像的位置和大小。縮放影像來符合矩形。
- srcRect
- Rectangle 結構,指定 image 物件要繪製的部分。
- srcUnit
- GraphicsUnit 列舉型別的成員,指定 srcRect 參數所使用的測量單位。
//設定畫布大小 Image tmp = new Bitmap(Width, Height); Graphics g = Graphics.FromImage(tmp); //這邊不是重點 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; //設定畫布的底色~透明或白色之類 g.Clear(Color.Transparent); //把來源圖片轉換成指定的大小畫到畫布上面 g.DrawImage(sourceImg, new Rectangle(0, 0, Width, Height), new Rectangle(0, 0, sourceImg.Width, sourceImg.Height), GraphicsUnit.Pixel); g.Dispose(); tmp.Save("thumb_" + filename + ext);
收工~吃飯!
沒有留言:
張貼留言