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

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

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

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

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

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

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

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

/** <summary>
        /// 保存JPG時(shí)用
        /// </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 命名空間中的類來(lái)另存為JPEG圖像,并控制其壓縮質(zhì)量。

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

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

首先,你需要安裝 ImageSharp 包。你可以通過(guò) NuGet 包管理器來(lái)安裝它:

Install-Package ImageSharp

然后,你可以使用以下代碼來(lái)保存一個(gè)圖像為JPEG,同時(shí)控制其壓縮質(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));  
    }  
}

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    由于靜態(tài)成員函數(shù)存在于類一級(jí),并且不是對(duì)象的一部分,因此沒(méi)有 this 指針。在靜態(tài)方法中引用 this 是錯(cuò)誤的。 索引器允許類或結(jié)構(gòu)的實(shí)例按照與數(shù)組相同的方式進(jìn)行索引。索引器類似于屬性,不同之處在于它們的訪問(wè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)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ù)識(shí)別ModbusTCP請(qǐng)求報(bào)文,返回對(duì)應(yīng)的ModbusTCP報(bào)文,今天給大家分享一下,如何基于C#來(lái)ModbusTCP服務(wù)器接口,需要的朋友可以參考下
    2025-01-01
  • 基于不要返回null之EmptyFactory的應(yīng)用詳解

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

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

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

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

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

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

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

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

最新評(píng)論

永城市| 南昌市| 襄垣县| 久治县| 叶城县| 资源县| 二连浩特市| 北碚区| 莲花县| 凤凰县| 裕民县| 临高县| 泾川县| 登封市| 怀柔区| 彩票| 榆社县| 清原| 伊金霍洛旗| 三台县| 凌云县| 嘉禾县| 舞阳县| 迁西县| 环江| 苗栗市| 东港市| 阿克苏市| 云龙县| 肥东县| 琼中| 荆门市| 光泽县| 苏尼特左旗| 吴桥县| 陇川县| 沧州市| 鲁山县| 仁寿县| 辛集市| 庄浪县|