在C#中,可以通过调整Bitmap图像的压缩质量来平衡图像质量和图像大小。压缩质量越高,图像质量越好,但文件大小也会相应增加。以下是一种常见的方法来实现图像质量和大小的平衡:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public void CompressImage(string inputImagePath, string outputImagePath, long quality)
{
using (Bitmap bitmap = new Bitmap(inputImagePath))
{
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
bitmap.Save(outputImagePath, jpgEncoder, myEncoderParameters);
}
}
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
在上面的代码中,CompressImage
方法接收输入图像路径、输出图像路径和压缩质量作为参数。通过调整quality
参数的值来平衡图像质量和大小。压缩质量通常在0到100之间,其中0表示最低质量,100表示最高质量。
调用CompressImage
方法并传入相应的参数即可实现图像质量和大小的平衡,例如:
CompressImage("input.jpg", "output.jpg", 50);
这将会将输入图像input.jpg
压缩为50%的质量,并保存为output.jpg
。您可以根据需要调整压缩质量来获得最佳的图像质量和大小平衡。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。