最新国产好看的视频,伊人天堂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% 左右。結果因圖像而異。

總結

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

相關文章

  • .net從服務器下載文件中文名亂碼解決方案

    .net從服務器下載文件中文名亂碼解決方案

    這篇文章主要給大家介紹.net中從服務器下載文件中文名亂碼的解決方案,有需要的朋友可以參考下
    2015-08-08
  • C#將數字轉換成字節(jié)數組的方法

    C#將數字轉換成字節(jié)數組的方法

    這篇文章主要介紹了C#將數字轉換成字節(jié)數組的方法,涉及C#字符串操作的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#實現chart控件動態(tài)曲線繪制

    C#實現chart控件動態(tài)曲線繪制

    這篇文章主要為大家詳細介紹了C#實現chart控件動態(tài)曲線繪制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 基于C#實現文字轉語音功能

    基于C#實現文字轉語音功能

    這篇文章將在C#中集成一個語音對象SpeechSynthesizer,可以根據填入的文字內容自動解析成語音并使用系統揚聲器進行語音播報,感興趣的小伙伴可以了解下
    2025-02-02
  • C# 字符串的連接(實例講解)

    C# 字符串的連接(實例講解)

    下面小編就為大家分享一篇C# 字符串的連接實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#實時監(jiān)控文件系統變化的實戰(zhàn)指南

    C#實時監(jiān)控文件系統變化的實戰(zhàn)指南

    在現代開發(fā)中,實時監(jiān)控文件系統變化是許多應用場景的核心需求,例如日志分析、文件同步、配置熱更新等,在C#中,FileSystemWatcher是實現類似功能的“臥底”工具,本文將揭秘如何通過FileSystemWatcher實現高效、隱蔽、穩(wěn)定的文件系統監(jiān)聽,需要的朋友可以參考下
    2025-07-07
  • c#實現輸出本月的月歷

    c#實現輸出本月的月歷

    本篇文章是對使用c#輸出本月月歷的實現的代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • System.Data.OleDb.OleDbException: 未指定的錯誤的完美解決方法

    System.Data.OleDb.OleDbException: 未指定的錯誤的完美解決方法

    本文給大家?guī)砣N有關System.Data.OleDb.OleDbException: 未指定的錯誤的完美解決方法,每種方法都很不錯,需要的朋友可以參考下
    2016-09-09
  • C#延時關閉電腦、取消關閉電腦操作方法(需管理員權限)

    C#延時關閉電腦、取消關閉電腦操作方法(需管理員權限)

    在C#中,如果想實現延時關閉電腦和取消關閉的功能,可以有多種方法,下面給大家分享C#延時關閉電腦、取消關閉電腦操作方法,感興趣的朋友一起看看吧
    2024-06-06
  • C#使用Spire.XLS實現將Excel轉換成高質量JPG

    C#使用Spire.XLS實現將Excel轉換成高質量JPG

    在日常辦公開發(fā)中,經常遇到需要將?Excel?表格轉換為圖片的需求,本文主要介紹了如何使用?Spire.XLS?庫,配合?C#?代碼實現高質量?Excel?轉?JPG,感興趣的小伙伴可以了解下
    2026-04-04

最新評論

五莲县| 武隆县| 桃江县| 武穴市| 壶关县| 贵南县| 芜湖县| 普兰县| 文安县| 永善县| 淅川县| 玉门市| 米易县| 金华市| 南雄市| 德阳市| 丁青县| 大名县| 通辽市| 绍兴市| 汤原县| 梅州市| 包头市| 宜良县| 丰都县| 利津县| 安仁县| 灵璧县| 沧源| 改则县| 西乌珠穆沁旗| 延边| 天等县| 旅游| 错那县| 罗平县| 钦州市| 南京市| 阿尔山市| 颍上县| 满洲里市|