繁体   English   中英

C#WPF图像加载和保存

[英]C# WPF Image loading and saving

我一直试图在位图图像类中加载我的图像。 但是,每当我尝试保存图像(使用名为“图像处理器”的第三方库)时,质量都会下降。 所以我的问题是:

有什么方法可以保存完整质量的图像?

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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM