C#图片缩放图片剪切功能实现(等比缩放)
在C#中,实现缩放和剪切图片是很常见的需求。本文将介绍如何使用C#实现等比缩放图片,并提供两个示例说明。
1. 等比缩放图片
1.1 引用命名空间
using System.Drawing;
using System.Drawing.Imaging;
1.2 创建一个函数
public static void ZoomImage(string fileName, int width, int height)
{
using (Image img = Image.FromFile(fileName))
{
int sourceWidth = img.Width; // 原始图像的宽度
int sourceHeight = img.Height; // 原始图像的高度
float scale = Math.Min((float)width / sourceWidth, (float)height / sourceHeight); // 计算缩放比例
int destWidth = (int)(sourceWidth * scale); // 计算缩放后的图像宽度
int destHeight = (int)(sourceHeight * scale); // 计算缩放后的图像高度
Bitmap bitmap = new Bitmap(destWidth, destHeight); // 创建缩放后的位图对象
using (Graphics graphics = Graphics.FromImage(bitmap))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; // 图像质量设置为最高
graphics.DrawImage(img, new Rectangle(0, 0, destWidth, destHeight), new Rectangle(0, 0, sourceWidth, sourceHeight), GraphicsUnit.Pixel); // 绘制缩放后的位图对象
}
bitmap.Save(Path.Combine(Path.GetDirectoryName(fileName), "zoom_" + Path.GetFileName(fileName)), ImageFormat.Jpeg); // 保存缩放后的位图对象
}
}
1.3 调用函数
ZoomImage("test.jpg", 100, 100); // 缩放test.jpg后的大小为100x100
2. 图片剪切功能实现
2.1 引用命名空间
using System.Drawing;
using System.Drawing.Imaging;
2.2 创建一个函数
public static void CropImage(string fileName, int x, int y, int width, int height)
{
using (Image img = Image.FromFile(fileName))
{
Bitmap bitmap = new Bitmap(width, height); // 创建剪切后的位图对象
using (Graphics graphics = Graphics.FromImage(bitmap))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; // 图像质量设置为最高
graphics.DrawImage(img, new Rectangle(0, 0, width, height), new Rectangle(x, y, width, height), GraphicsUnit.Pixel); // 绘制剪切后的位图对象
}
bitmap.Save(Path.Combine(Path.GetDirectoryName(fileName), "crop_" + Path.GetFileName(fileName)), ImageFormat.Jpeg); // 保存剪切后的位图对象
}
}
2.3 调用函数
CropImage("test.jpg", 50, 50, 100, 100); // 剪切test.jpg,以(50,50)为起点,剪切大小为100x100
以上就是C#图片缩放和剪切实现的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#图片缩放图片剪切功能实现(等比缩放) - Python技术站