温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C# Bitmap图像质量与大小平衡

发布时间:2024-07-16 09:46:07 来源:亿速云 阅读:125 作者:小樊 栏目:编程语言

在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。您可以根据需要调整压缩质量来获得最佳的图像质量和大小平衡。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI