我的 WPF 应用程序已经可以调整图像大小和文本水印。当转换后的图像大小为 700 像素 x 700 像素且水印文本为 30 pt 时,我的应用程序将 4MB 图像转换为 600 KB 图像。
如何减小图像大小(600 KB 到 250 KB 或更小)?
考虑到我的应用程序是使用 WPF、C# 和 .NET 4 编写的,我应该使用哪个库或代码示例?
减小图像大小有两种方法:降低分辨率或使用您正在使用的格式的压缩参数(即 jpeg 压缩基于余弦变换,使您能够控制最终图像的质量(和大小))。
我使用 BitmapSource 扩展方法来控制我保存的 Jpeg 图像的质量。也许你会发现它很有用:
public static void SaveBitmapSourceAsJpeg(this BitmapSource image, string fileName, int quality)
{
using (var fileStream = new FileStream(fileName, FileMode.Create))
{
var encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
encoder.QualityLevel = quality;
encoder.Save(fileStream);
}
}