亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

該程序的關(guān)鍵是以下SaveJpg方法

該方法使用給定的壓縮指數(shù)保存 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 文件的編碼器的信息。它填充了壓縮索引。

接下來,該方法調(diào)用GetEncoderInfo函數(shù)(稍后介紹)來獲取有關(guān) 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。它仍然產(chǎn)生不錯的效果,壓縮文件的大小僅為原始文件大小的 18% 左右。結(jié)果因圖像而異。

總結(jié)

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

相關(guān)文章

  • C#使用selenium實現(xiàn)爬蟲

    C#使用selenium實現(xiàn)爬蟲

    這篇文章介紹了C#使用selenium實現(xiàn)爬蟲的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法

    C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法

    下面小編就為大家分享一篇C#抓取網(wǎng)絡(luò)圖片保存到本地的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • WCF和Remoting之間的消息傳輸

    WCF和Remoting之間的消息傳輸

    這篇文章介紹了WCF和Remoting之間的消息傳輸,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • c# List和Dictionary常用的操作

    c# List和Dictionary常用的操作

    這篇文章主要介紹了c# List和Dictionary常用的操作,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-04-04
  • 淺談C#多線程簡單例子講解

    淺談C#多線程簡單例子講解

    本篇文章主要介紹了C#多線程簡單例子,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • c#操作Redis的5種基本類型匯總

    c#操作Redis的5種基本類型匯總

    這篇文章主要給大家介紹了關(guān)于c#操作Redis的5種基本類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-07-07
  • winform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例

    winform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例

    下面小編就為大家?guī)硪黄獁inform C#獲得Mac地址,IP地址,子網(wǎng)掩碼,默認網(wǎng)關(guān)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#獲取指定目錄下指定文件的方法

    C#獲取指定目錄下指定文件的方法

    這篇文章介紹了C#獲取指定目錄下指定文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Winform實現(xiàn)鼠標可穿透的窗體鏤空效果

    Winform實現(xiàn)鼠標可穿透的窗體鏤空效果

    這篇文章主要介紹了Winform實現(xiàn)鼠標可穿透的窗體鏤空效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • C#中的應(yīng)用程序接口介紹及實現(xiàn),密封類與密封方法

    C#中的應(yīng)用程序接口介紹及實現(xiàn),密封類與密封方法

    今天小編就為大家分享一篇關(guān)于C#中的應(yīng)用程序接口介紹及實現(xiàn),密封類與密封方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論