在C#中调整图像大小,可以使用System.Drawing命名空间中的Bitmap类。以下是一个简单的示例,展示了如何使用C#调整图像大小:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
public static class ImageResizer
{
public static Image ResizeImage(Image image, int width, int height)
{
var destRect = new Rectangle(0, 0, width, height);
var destImage = new Bitmap(width, height);
destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution);
using var graphics = Graphics.FromImage(destImage);
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
using var wrapMode = new ImageAttributes();
wrapMode.SetWrapMode(WrapMode.TileFlipXY);
graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode);
return destImage;
}
}
在这个示例中,我们定义了一个名为ResizeImage
的静态方法,该方法接受一个Image
对象、目标宽度和目标高度作为参数,并返回一个调整大小后的Image
对象。
在方法内部,我们首先创建一个新的Bitmap
对象,并设置其分辨率为原始图像的分辨率。然后,我们使用Graphics
对象绘制调整大小后的图像,并使用ImageAttributes
对象设置绘制模式。最后,我们使用DrawImage
方法将原始图像绘制到目标图像上,并返回调整大小后的图像。
这个示例中的算法可以确保调整后的图像具有良好的图像质量和清晰度。在实际应用中,您可以根据需要对其进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云