[C#]生成缩略图
??????? /// <summary>
??????? /// 生成縮略圖
??????? /// </summary>
??????? /// <param name="sourceImagePath">原圖片路徑(絕對路徑)</param>
??????? /// <param name="thumbnailImageWidth">縮略圖的寬度(高度與按源圖片比例自動生成)</param>
??????? public Image ToThumbnailImages(string sourceImagePath, int thumbnailImageWidth)
??????? {
??????????? Image Retimage = null;
??????????? string SourceImagePath = sourceImagePath;
??????????? int ThumbnailImageWidth = thumbnailImageWidth;
??????????? string sExt = SourceImagePath.Substring(SourceImagePath.LastIndexOf(".")).ToLower();
??????????? //從 原圖片 創建 Image 對象
??????????? Stream FS = new FileStream(sourceImagePath, FileMode.Open);
??????????? System.Drawing.Image image = System.Drawing.Image.FromStream(FS);
??????????? FS.Close();
??????????? //System.Drawing.Image image = System.Drawing.Image.FromFile(sourceImagePath);
??????????? int num = ((ThumbnailImageWidth / 4) * 3);
??????????? int width = image.Width;
??????????? int height = image.Height;
??????????? //計算圖片的比例
??????????? if ((((double)width) / ((double)height)) >= 1.3333333333333333f)
??????????? {
??????????????? num = ((height * ThumbnailImageWidth) / width);
??????????? }
??????????? else
??????????? {
??????????????? ThumbnailImageWidth = ((width * num) / height);
??????????? }
??????????? if ((ThumbnailImageWidth < 1) || (num < 1))
??????????? {
??????????????? return Retimage;
??????????? }
??????????? //用指定的大小和格式初始化 Bitmap 類的新實例
??????????? Bitmap bitmap = new Bitmap(ThumbnailImageWidth, num, PixelFormat.Format32bppArgb);
??????????? //從指定的 Image 對象創建新 Graphics 對象
??????????? Graphics graphics = Graphics.FromImage(bitmap);
??????????? //清除整個繪圖面并以透明背景色填充
??????????? graphics.Clear(Color.Transparent);
??????????? //在指定位置并且按指定大小繪制 原圖片 對象
??????????? graphics.DrawImage(image, new Rectangle(0, 0, ThumbnailImageWidth, num));
??????????? Retimage = image.Clone() as Image;
??????????? image.Dispose();
??????????? bitmap.Dispose();
??????????? graphics.Dispose();
??????????? return Retimage;
??????? }
轉載于:https://www.cnblogs.com/boneking/archive/2010/05/10/1731525.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: 使用 Maven 执行 java mai
- 下一篇: Handler理解