使用C#进行高质量的JPEG压缩

我正在使用C#,并希望使用JPEG格式保存图像。但是,.NET会降低图像质量,并通过不够的压缩来保存图像。

我要保存文件的原始质量和大小。我正在使用以下代码,但是压缩和质量与原始代码不同。

Bitmap bm = (Bitmap)Image.FromFile(FilePath); 

ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

ImageCodecInfo ici = null;

foreach (ImageCodecInfo codec in codecs)

{

if (codec.MimeType == "image/jpeg")

ici = codec;

}

EncoderParameters ep = new EncoderParameters();

ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)100);

bm.Save("C:\\quality" + x.ToString() + ".jpg", ici, ep);

我正在存档工作室照片,质量和压缩率非常重要。谢谢。

回答:

您好像将质量设置为100%。这意味着将没有压缩。

如果更改了压缩级别(80、50等),但对质量不满意,则可能要尝试使用其他图像库。LEADTools具有良好的引擎(非免费)。

更新:如评论员所述,使用JPEG时100%的质量仍然并不意味着无损压缩。加载图像,对其进行处理,然后再次保存,最终将导致图像质量下降。如果您需要更改和保存图像而不丢失任何数据,则需要使用无损格式,例如TIFF,PNG或BMP。我会使用压缩的TIFF(因为即使压缩也仍然无损)或PNG。

以上是 使用C#进行高质量的JPEG压缩 的全部内容, 来源链接: utcz.com/qa/409595.html

回到顶部