使用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