C#后端实现图片压缩与尺寸优化
需积分: 10 102 浏览量
更新于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 上传
2020-09-01 上传
点击了解资源详情
2021-09-09 上传
2021-09-09 上传
2021-09-09 上传
2021-09-09 上传
11楼的日J
- 粉丝: 2
- 资源: 8
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南