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

C#實(shí)現(xiàn)壓縮圖片為可控制的JPEG格式

 更新時間:2024年01月28日 17:04:42   作者:wangnaisheng  
這篇文章主要為大家詳細(xì)介紹了使用C#實(shí)現(xiàn)將圖片壓縮為質(zhì)量可自己控制的JPEG的幾種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

1.在C#中,可以使用Bitmap類來讀取和處理圖片文件

要另存為壓縮質(zhì)量可自己控制的JPEG圖片,可以使用Bitmap的Save方法,并在其中設(shè)置JPEG的壓縮質(zhì)量。 以下是一個簡單的示例,說明如何將Bitmap保存為JPEG圖片,其中可以自定義壓縮質(zhì)量:

Bitmap bitmap = new Bitmap("input.jpg");
bitmap.Save("output.jpg", ImageFormat.Jpeg, 
new EncoderParameters(1, new EncoderParameter(Encoder.Quality, 50L)));

在這個示例中,"input.jpg"是輸入的圖片文件名,"output.jpg"是輸出的圖片文件名。Encoder.Quality是JPEG壓縮質(zhì)量的參數(shù),50L表示壓縮質(zhì)量為50。這個值可以是0到100之間的整數(shù),0表示最高質(zhì)量,100表示最低質(zhì)量。 請注意,這個示例使用了EncoderParameters類來設(shè)置JPEG的壓縮質(zhì)量。EncoderParameters是一個枚舉類,它包含了一個或多個EncoderParameter對象。EncoderParameter對象用于設(shè)置特定的編碼參數(shù)。在這個示例中,我們設(shè)置了一個EncoderParameter對象,它的Encoder參數(shù)為Encoder.Quality,值為50L。

2.C#圖片處理之: 另存為壓縮質(zhì)量可自己控制的JPEG

/** <summary>
        /// 保存JPG時用
        /// </summary>
        /// <param name="mimeType"></param>
        /// <returns>得到指定mimeType的ImageCodecInfo</returns>
        private static ImageCodecInfo GetCodecInfo(string mimeType)
        {
            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
            foreach (ImageCodecInfo ici in CodecInfo)
            {
                if (ici.MimeType == mimeType) return ici;
            }
            return null;
        }
        /** <summary>
        /// 保存為JPEG格式,支持壓縮質(zhì)量選項(xiàng)
        /// </summary>
        /// <param name="bmp"></param>
        /// <param name="FileName"></param>
        /// <param name="Qty"></param>
        /// <returns></returns>
        public static bool KiSaveAsJPEG(Bitmap bmp, string FileName, int Qty)
        {
            try
            {
                EncoderParameter p;
                EncoderParameters ps;
                ps = new EncoderParameters(1);
                p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Qty);
                ps.Param[0] = p;
                bmp.Save(FileName, GetCodecInfo("image/jpeg"), ps);
                
                return true;
            }
            catch
            {
                return false;
            }
        }

3.在C#中,你可以使用 System.Drawing 和 System.IO 命名空間中的類來另存為JPEG圖像,并控制其壓縮質(zhì)量。

不過,直接控制JPEG壓縮質(zhì)量的任務(wù)在.NET中并不直接支持,因?yàn)镴PEG壓縮是由庫(如libjpeg)完成的,而.NET并沒有提供直接操作這些庫的接口。

然而,你可以使用一些第三方庫如ImageSharp,它提供了更高級的圖像處理功能,包括JPEG壓縮。

首先,你需要安裝 ImageSharp 包。你可以通過 NuGet 包管理器來安裝它:

Install-Package ImageSharp

然后,你可以使用以下代碼來保存一個圖像為JPEG,同時控制其壓縮質(zhì)量:

using System.Drawing;  
using ImageSharp;  
using System.IO;  
  
public void SaveImageWithQuality(Bitmap bmp, string path, int quality)  
{  
    using (var img = Image.FromBitmap(bmp))  
    {  
        img.Mutate(x => x  
             .Format(ImageFormat.Jpeg)  
             .Quality(quality)  
             .Save(path));  
    }  
}

在這個代碼中,Bitmap 是你要保存的圖像,path 是你要保存的路徑,quality 是JPEG的質(zhì)量,范圍是0-100(100表示最高質(zhì)量,即無壓縮)。注意,ImageSharp 的 Quality 設(shè)置并不直接對應(yīng)于傳統(tǒng)的JPEG壓縮質(zhì)量設(shè)置,它是一個更為復(fù)雜的算法,但大致上,更高的質(zhì)量值意味著更少的壓縮和更好的圖像質(zhì)量。

這只是一種可能的解決方案。實(shí)際上,對于這樣的問題,你可能需要更深入地理解JPEG壓縮,或者尋找一個可以直接控制JPEG壓縮質(zhì)量的第三方庫。

到此這篇關(guān)于C#實(shí)現(xiàn)壓縮圖片為可控制的JPEG格式的文章就介紹到這了,更多相關(guān)C#壓縮圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 匿名方法的實(shí)現(xiàn)示例

    C# 匿名方法的實(shí)現(xiàn)示例

    本文詳細(xì)介紹了C#中的匿名方法,包括其聲明方式(使用delegate和lambda表達(dá)式),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • C#交換兩個變量值的幾種方法總結(jié)

    C#交換兩個變量值的幾種方法總結(jié)

    這篇文章介紹了C#交換兩個變量值的幾種方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • C#實(shí)現(xiàn)百度ping推送功能的方法

    C#實(shí)現(xiàn)百度ping推送功能的方法

    百度ping是網(wǎng)站優(yōu)化必做的事情,這樣才能主動推送給百度,那么基于代碼是如何實(shí)現(xiàn)百度推送方法呢?下文小編給大家?guī)砹薈#實(shí)現(xiàn)百度ping推送功能的方法,非常不錯,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • C# 參考之訪問關(guān)鍵字:base、this

    C# 參考之訪問關(guān)鍵字:base、this

    由于靜態(tài)成員函數(shù)存在于類一級,并且不是對象的一部分,因此沒有 this 指針。在靜態(tài)方法中引用 this 是錯誤的。 索引器允許類或結(jié)構(gòu)的實(shí)例按照與數(shù)組相同的方式進(jìn)行索引。索引器類似于屬性,不同之處在于它們的訪問器采用參數(shù)。
    2008-03-03
  • C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字效果的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于C#實(shí)現(xiàn)ModbusTCP服務(wù)器接口的方法

    基于C#實(shí)現(xiàn)ModbusTCP服務(wù)器接口的方法

    ModbusTCP服務(wù)器的本質(zhì)就是TCP服務(wù)器,根據(jù)識別ModbusTCP請求報文,返回對應(yīng)的ModbusTCP報文,今天給大家分享一下,如何基于C#來ModbusTCP服務(wù)器接口,需要的朋友可以參考下
    2025-01-01
  • 基于不要返回null之EmptyFactory的應(yīng)用詳解

    基于不要返回null之EmptyFactory的應(yīng)用詳解

    本篇文章對不要返回null之EmptyFactory進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#實(shí)現(xiàn)通過winmm.dll控制聲音播放的方法

    C#實(shí)現(xiàn)通過winmm.dll控制聲音播放的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)通過winmm.dll控制聲音播放的方法,很實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • C#子線程更新UI控件的方法實(shí)例總結(jié)

    C#子線程更新UI控件的方法實(shí)例總結(jié)

    這篇文章主要介紹了C#子線程更新UI控件的方法,在桌面應(yīng)用程序中控制UI界面有著不錯的實(shí)用價值,需要的朋友可以參考下
    2014-09-09
  • Unity實(shí)現(xiàn)圖片水印生成

    Unity實(shí)現(xiàn)圖片水印生成

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)圖片水印生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論

华安县| 瓮安县| 治县。| 满城县| 蓝田县| 忻州市| 敦煌市| 嘉义县| 富民县| 舞钢市| 新郑市| 襄汾县| 黄龙县| 合肥市| 阿鲁科尔沁旗| 当涂县| 阿克苏市| 双流县| 西青区| 启东市| 崇州市| 舞阳县| 曲麻莱县| 桦南县| 儋州市| 家居| 安阳市| 肇源县| 麻阳| 介休市| 望城县| 焦作市| 潍坊市| 阳新县| 凭祥市| 浮梁县| 同江市| 新兴县| 施秉县| 西藏| 锡林郭勒盟|