C#生成缩略图

本文介绍了一种用于获取等比例缩放图片的方法,并详细解释了如何通过指定宽度或高度来保持图片的比例不变。该方法适用于多种图片格式,并提供了一个具体的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/// <summary> /// 获取等比例缩放图片的方法 /// </summary> /// <param name="imgPath">待缩放及保存图片的路径</param> /// <param name="format">缩放图片保存的格式</param> /// <param name="scaling">要保持的宽度或高度</param> /// <param name="keepWidthOrHeight">如果为true则保持宽度为scaling,否则保持高度为scaling</param> /// <returns></returns> public bool GetThumbnail(string imgPath, System.Drawing.Imaging.ImageFormat format, int scaling, bool keepWidthOrHeight) { File.Copy(imgPath, imgPath + ".bak"); try { using (System.Drawing.Bitmap myBitmap = new System.Drawing.Bitmap(imgPath)) { int width = 0; int height = 0; int tw = myBitmap.Width;//图像的实际宽度 int th = myBitmap.Height;//图像的实际高度 if (keepWidthOrHeight)//保持宽度 { #region 自动保持宽度 if (scaling >= tw) { width = tw; height = th; } else { double ti = Convert.ToDouble(tw) / Convert.ToDouble(scaling); if (ti == 0d) { width = tw; height = th; } else { width = scaling; height = Convert.ToInt32(Convert.ToDouble(th) / ti); } } #endregion } else { #region 自动保持高度 if (scaling >= th) { width = tw; height = th; } else { double ti = Convert.ToDouble(th) / Convert.ToDouble(scaling); if (ti == 0d) { width = tw; height = th; } else { width = Convert.ToInt32(Convert.ToDouble(tw) / ti); height = scaling; } } #endregion } using (System.Drawing.Image myThumbnail = myBitmap.GetThumbnailImage(width, height, null, IntPtr.Zero)) { myBitmap.Dispose(); File.Delete(imgPath); myThumbnail.Save(imgPath); } } File.Delete(imgPath + ".bak"); return true; } catch { return false; } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值