溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C# Bitmap圖像質(zhì)量與大小平衡

發(fā)布時(shí)間:2024-07-16 09:46:07 來源:億速云 閱讀:125 作者:小樊 欄目:編程語言

在C#中,可以通過調(diào)整Bitmap圖像的壓縮質(zhì)量來平衡圖像質(zhì)量和圖像大小。壓縮質(zhì)量越高,圖像質(zhì)量越好,但文件大小也會(huì)相應(yīng)增加。以下是一種常見的方法來實(shí)現(xiàn)圖像質(zhì)量和大小的平衡:

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方法接收輸入圖像路徑、輸出圖像路徑和壓縮質(zhì)量作為參數(shù)。通過調(diào)整quality參數(shù)的值來平衡圖像質(zhì)量和大小。壓縮質(zhì)量通常在0到100之間,其中0表示最低質(zhì)量,100表示最高質(zhì)量。

調(diào)用CompressImage方法并傳入相應(yīng)的參數(shù)即可實(shí)現(xiàn)圖像質(zhì)量和大小的平衡,例如:

CompressImage("input.jpg", "output.jpg", 50);

這將會(huì)將輸入圖像input.jpg壓縮為50%的質(zhì)量,并保存為output.jpg。您可以根據(jù)需要調(diào)整壓縮質(zhì)量來獲得最佳的圖像質(zhì)量和大小平衡。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI