C#后端实现图片压缩与尺寸优化
需积分: 10 92 浏览量
更新于2024-09-08
收藏 3KB TXT 举报
在C#后端开发中,图片压缩是一个常见的需求,特别是在处理上传或显示大尺寸图片时,为了提高性能和用户体验,优化图片大小至关重要。这段代码片段提供了一个名为`compression`的方法,用于调整图片大小并进行质量压缩。以下是该方法的核心部分:
1. 首先,通过`System.Drawing.Image.FromFile(filePath)`加载本地图片文件,获取到`Image`对象,存储为`img`。
2. 保存原始图片格式,`img.RawFormat`用于后续恢复图像质量。
3. 计算缩放后的图片尺寸,`tem_size`是根据原始图片宽度和高度计算出的新尺寸,如果原图高度超过700像素,则保持高度为700像素,宽度按比例缩放,确保长宽比不变。计算公式为:`sW = Convert.ToInt32(tem_size.Width * (700 / Convert.ToDouble(tem_size.Height)))`。这里采用了等比例缩放策略,以保持图片不失真。
4. 创建一个新的`Bitmap`对象`oB`,大小为缩放后的宽度和高度,用于存储压缩后的图片。
5. 使用`Graphics.FromImage(oB)`创建一个`Graphics`对象,用于在新的`Bitmap`上绘制压缩后的图像。
6. 清除`Graphics`对象的背景,设置`g.Clear(Color.WhiteSmoke)`,这是一种淡灰色,作为透明背景。
7. 设置绘图质量、平滑模式和插值模式为高质,以确保压缩后的图像质量尽可能高,`g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic;`
8. 最后,调用`g.DrawImage(img, newRectangle(0, 0, sW, sH), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel)`来将原始图片画入新的`Bitmap`中,指定绘制区域和坐标。
这个`compression`方法的主要作用是接收一个文件路径和URL,读取图片,根据设定的尺寸限制对图片进行高质量的压缩,并返回压缩后的Bitmap对象。开发者可以根据实际需求,调整压缩参数,如最大高度限制,或者使用不同的压缩算法以平衡质量和大小。在遇到问题时,可以通过留言寻求帮助,作者会及时回应。这个功能对于Web应用和移动应用的性能优化至关重要。
2018-02-03 上传
2010-11-08 上传
2023-05-30 上传
2023-05-30 上传
2024-04-13 上传
2023-05-30 上传
2023-06-13 上传
2024-04-19 上传
2024-06-01 上传
11楼的日J
- 粉丝: 2
- 资源: 8
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展