最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在C#中優(yōu)化JPEG壓縮級別和文件大小方式

 更新時間:2025年01月07日 14:23:01   作者:坐井觀老天  
文章介紹了如何在C#中優(yōu)化JPEG壓縮級別和文件大小,通過使用文件菜單加載圖像文件并選擇不同的壓縮級別,程序將圖像保存為臨時文件并顯示生成的圖像和文件大小,關鍵方法SaveJpg使用給定的壓縮指數保存JPG文件,并通過GetEncoderInfo獲取編碼器信息

C#優(yōu)化JPEG壓縮級別和文件大小

此示例可讓您檢查不同 JPEG 壓縮級別的圖像質量。

使用文件菜單的打開命令加載圖像文件。

然后使用“JPEG 壓縮指數 (CI)”組合框選擇壓縮級別。

程序將圖像保存到具有該壓縮級別的臨時文件中,并顯示生成的圖像和文件大小。

該程序的關鍵是以下SaveJpg方法

該方法使用給定的壓縮指數保存 JPG 文件。(這是您的工具包中一個非常有用的功能。)

// Save the file with a specific compression level.
private void SaveJpg(Image image, string file_name, long compression)
{
    try
    {
        EncoderParameters encoder_params = new EncoderParameters(1);
        encoder_params.Param[0] = new EncoderParameter(
            System.Drawing.Imaging.Encoder.Quality, compression);

        ImageCodecInfo image_codec_info =
            GetEncoderInfo("image/jpeg");
        File.Delete(file_name);
        image.Save(file_name, image_codec_info, encoder_params);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error saving file '" + file_name +
            "'\nTry a different file name.\n" + ex.Message,
            "Save Error", MessageBoxButtons.OK,
            MessageBoxIcon.Error);
    }
}

此方法創(chuàng)建一個EncoderParameters對象

用于保存要發(fā)送給創(chuàng)建 JPG 文件的編碼器的信息。它填充了壓縮索引。

接下來,該方法調用GetEncoderInfo函數(稍后介紹)來獲取有關 JPG 文件編碼器的信息。

它刪除以前的臨時文件并使用編碼器再次保存文件。

以下代碼顯示GetEncoderInfo方法

// Return an ImageCodecInfo object for this mime type.
private ImageCodecInfo GetEncoderInfo(string mime_type)
{
    ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
    for (int i = 0; i <= encoders.Length; i++)
    {
        if (encoders[i].MimeType == mime_type) return encoders[i];
    }
    return null;
}

此代碼循環(huán)遍歷可用的編碼器,直到找到具有正確 MIME 類型的編碼器,在本例中為“image/jpeg”。

在本文頂部顯示的圖片中,壓縮級別為 30。它仍然產生不錯的效果,壓縮文件的大小僅為原始文件大小的 18% 左右。結果因圖像而異。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

丰顺县| 革吉县| 安塞县| 逊克县| 慈利县| 红河县| 通榆县| 高州市| 青龙| 丽水市| 交城县| 冀州市| 东台市| 固阳县| 临清市| 德阳市| 绍兴市| 海兴县| 丽江市| 临湘市| 洛阳市| 隆德县| 西畴县| 屏山县| 武川县| 阜宁县| 黄浦区| 安义县| 华池县| 理塘县| 杂多县| 海丰县| 紫阳县| 昌图县| 南城县| 军事| 敦煌市| 本溪| 临泉县| 剑河县| 庆阳市|