在.NET中生成JPG缩略图,可以使用System.Drawing命名空间中的Image类。以下是一个简单的示例代码:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public static void GenerateThumbnail(string inputPath, string outputPath, int width, int height)
{
using (Image originalImage = Image.FromFile(inputPath))
{
int sourceWidth = originalImage.Width;
int sourceHeight = originalImage.Height;
// 计算缩略图的宽度和高度
int thumbnailWidth = width;
int thumbnailHeight = height;
// 如果原始图像的宽度和高度都大于缩略图的宽度和高度,则按比例缩放
if (sourceWidth > width && sourceHeight > height)
{
double widthRatio = (double)width / sourceWidth;
double heightRatio = (double)height / sourceHeight;
double scaleRatio = Math.Min(widthRatio, heightRatio);
thumbnailWidth = (int)(sourceWidth * scaleRatio);
thumbnailHeight = (int)(sourceHeight * scaleRatio);
}
// 创建缩略图
using (Bitmap thumbnailImage = new Bitmap(thumbnailWidth, thumbnailHeight))
{
using (Graphics graphics = Graphics.FromImage(thumbnailImage))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.DrawImage(originalImage, new Rectangle(0, 0, thumbnailWidth, thumbnailHeight));
}
// 保存缩略图为JPG格式
thumbnailImage.Save(outputPath, ImageFormat.Jpeg);
}
}
}
该方法接受四个参数:原始图像的路径、缩略图的路径、缩略图的宽度和高度。它首先读取原始图像,然后计算缩略图的宽度和高度,并创建一个新的Bitmap对象。接着,使用Graphics对象将原始图像绘制到Bitmap对象中,并保存为JPG格式。
请注意,该方法仅适用于.NET Framework和.NET Core 2.0及更高版本。如果您使用的是.NET Core 1.x,则需要安装System.Drawing.Common包。
领取专属 10元无门槛券
手把手带您无忧上云