C#WPF图像加载和保存
本文关键字:保存 加载 图像 C#WPF | 更新日期: 2023-09-27 18:25:43
我一直试图在位图图像类中加载我的图像。但每当我试图保存图像(使用名为图像处理器的第三方库)时,质量就会下降。所以我的问题是:
有什么方法可以保存图像的完整质量吗?
src.BeginInit();
src.UriSource = new Uri("picture.jpg", UriKind.Relative);
src.CacheOption = BitmapCacheOption.OnLoad;
src.EndInit();
您可以在没有任何第三方库的情况下实现图像保存。但您应该知道,保存JPEG总是会降低质量——这是该格式的本质,而不是库的问题。使用JpegBitmapEncoder
,您可以配置质量,使用最大值,您不会看到图片退化,但无论如何都会出现。因此,请考虑使用PNG格式。
以下是如何加载和保存JPEG图像的简短片段:
// Load from file or any other source.
var uri = new Uri(@"D:'InputImage.jpg");
var bitmap = new BitmapImage(uri);
// Save to file.
var encoder = new JpegBitmapEncoder(); // Or any other, e.g. PngBitmapEncoder for PNG.
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.QualityLevel = 100; // Set quality level 1-100.
using (var stream = new FileStream(@"D:'OutputImage.jpg", FileMode.Create))
{
encoder.Save(stream);
}
WebImage工作得很好,我经常在应用程序中使用这个类。它有很多很好的内置功能,例如,在调整图像大小时保存蜂胶:
WebImage wi = new WebImage(imageName);
wi.Resize(314, 235, true);
wi.Save(imageName, "png");