C#后端实现图片压缩与尺寸优化
需积分: 10 155 浏览量
更新于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应用和移动应用的性能优化至关重要。
点击了解资源详情
点击了解资源详情
1389 浏览量
142 浏览量
2021-09-09 上传
2021-09-09 上传
2021-09-09 上传
2021-09-09 上传

11楼的日J
- 粉丝: 2
最新资源
- C语言教程:从入门到精通
- C++编程高质量指南:结构、命名与内存管理
- VC+Modem:实现远程通讯控制的多线程文件传输与实时操控
- 使用gdb进行调试:第9版
- 密码学3答案与资源库:欧密会论文与数学学习论坛
- 小型图书馆管理系统设计与分析
- JAVA认证考试详解与Servlet技术模型
- Java代码转exe:打包工具与步骤解析
- C++编程质量提升全攻略
- 18世纪Bayes理论:揭开Bayesian Network基础与应用
- 水晶报表10开发指南:安装与环境配置
- EJB学习全攻略:从入门到实践与深入
- JSTL入门教程:从基础到实践
- Exchange Server 2003 管理PDF指南:入门必备
- MiPlatform 3.1:XML基础的事件处理系统
- Linux下TCP服务器编程:循环与并发服务