下面我将为您详细讲解“C#图片截取压缩(百分比压缩/大小压缩)实现代码”的完整攻略。
一、实现思路
图片截取和压缩功能可以通过C#中内置的System.Drawing命名空间的方法来实现。具体实现流程如下:
- 读取原始图片文件,创建一个Image对象;
- 将Image对象转换为Bitmap对象;
- 调用Bitmap对象的Crop方法对图片进行截取,得到截取后的Bitmap对象;
- 调用Bitmap对象的GetThumbnailImage方法将图片压缩为指定大小;
- 保存压缩后的Bitmap对象,得到最终的图片。
二、代码示例1:百分比压缩
using System.Drawing;
// 图片压缩比例
decimal percent = 0.5m;
// 原始图片文件路径
string inputFilePath = "D:/test/original.jpg";
// 压缩后的图片保存路径
string outputFilePath = "D:/test/output.jpg";
// 读取原始图片文件
Image originalImage = Image.FromFile(inputFilePath);
// 将Image对象转换为Bitmap对象
Bitmap originalBitmap = new Bitmap(originalImage);
// 获取原始图片的大小
int originalWidth = originalBitmap.Width;
int originalHeight = originalBitmap.Height;
// 计算压缩后的图片大小
int newWidth = (int)(originalWidth * percent);
int newHeight = (int)(originalHeight * percent);
// 调用Bitmap对象的Crop方法对图片进行截取
Bitmap croppedBitmap = originalBitmap.Clone(new Rectangle(0, 0, newWidth, newHeight), originalBitmap.PixelFormat);
// 调用Bitmap对象的GetThumbnailImage方法将图片压缩为指定大小
Image compressedImage = croppedBitmap.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
// 保存压缩后的图片
compressedImage.Save(outputFilePath);
// 释放资源
originalImage.Dispose();
originalBitmap.Dispose();
croppedBitmap.Dispose();
compressedImage.Dispose();
三、代码示例2:大小压缩
using System.Drawing;
// 压缩后的图片宽度
int newWidth = 500;
// 压缩后的图片高度
int newHeight = 500;
// 原始图片文件路径
string inputFilePath = "D:/test/original.jpg";
// 压缩后的图片保存路径
string outputFilePath = "D:/test/output.jpg";
// 读取原始图片文件
Image originalImage = Image.FromFile(inputFilePath);
// 将Image对象转换为Bitmap对象
Bitmap originalBitmap = new Bitmap(originalImage);
// 调用Bitmap对象的GetThumbnailImage方法将图片压缩为指定大小
Image compressedImage = originalBitmap.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);
// 保存压缩后的图片
compressedImage.Save(outputFilePath);
// 释放资源
originalImage.Dispose();
originalBitmap.Dispose();
compressedImage.Dispose();
希望以上代码示例对你有所帮助。如果有任何问题,欢迎留言讨论。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#图片截取压缩(百分比压缩/大小压缩)实现代码 - Python技术站