我有大约 10000 个产品图片的 png 文件。后来我了解到生产中的产品图像是 jpeg,因此我需要将我的新 10000 png 文件转换为 jpeg。如果我只是将扩展名从 png 更改为 jpeg,图像质量会发生什么变化?
我在 C#/SQL Server 环境下工作,我应该使用
System.Drawing.Image image1 = System.Drawing.Image.FromFile(@"C:\test.png");
// Save the image in JPEG format.
image1.Save(@"C:\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
Run Code Online (Sandbox Code Playgroud)
对此有何想法?
您可以通过在保存 Jpeg 时使用尽可能高的质量级别来确保它不引人注意或几乎不引人注意。
摘自MSDN:
// Get a bitmap.
Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");
ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
// Create an Encoder object based on the GUID
// for the Quality parameter category.
System.Drawing.Imaging.Encoder myEncoder =
System.Drawing.Imaging.Encoder.Quality;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
EncoderParameters myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jgpEncoder, myEncoderParameters);
Run Code Online (Sandbox Code Playgroud)
还要记住,Jpeg 格式不会保存图像的 Alpha 通道。
这个相关问题涉及 .NET 使用的默认质量级别:Image.Save() 对 jpeg 文件使用什么质量级别?