溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C# Bitmap圖像與圖像壓縮算法

發(fā)布時(shí)間:2024-07-16 12:12:09 來源:億速云 閱讀:131 作者:小樊 欄目:編程語言

在C#中,可以使用System.Drawing命名空間中的Bitmap類來處理圖像。要對圖像進(jìn)行壓縮,可以使用一些圖像壓縮算法,比如JPEG、PNG、GIF等。

以下是一個(gè)簡單的示例,演示如何使用C#中的Bitmap類和JPEG壓縮算法對圖像進(jìn)行壓縮:

using System;
using System.Drawing;
using System.Drawing.Imaging;

class Program
{
    static void Main()
    {
        // 加載圖像
        Bitmap originalImage = new Bitmap("original.jpg");

        // 創(chuàng)建一個(gè)空的Bitmap對象,用于存儲壓縮后的圖像
        Bitmap compressedImage = new Bitmap(originalImage.Width, originalImage.Height);

        // 設(shè)置JPEG壓縮參數(shù)
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        Encoder encoder = Encoder.Quality;
        EncoderParameter encoderParameter = new EncoderParameter(encoder, 50L); // 壓縮質(zhì)量,取值范圍0-100
        EncoderParameters encoderParameters = new EncoderParameters(1);
        encoderParameters.Param[0] = encoderParameter;

        // 將原始圖像以JPEG格式壓縮到空Bitmap對象中
        Graphics graphics = Graphics.FromImage(compressedImage);
        graphics.DrawImage(originalImage, new Rectangle(0, 0, originalImage.Width, originalImage.Height));
        compressedImage.Save("compressed.jpg", jpgEncoder, encoderParameters);

        // 釋放資源
        originalImage.Dispose();
        compressedImage.Dispose();
        graphics.Dispose();
    }

    // 獲取指定圖像格式的編碼器
    static ImageCodecInfo GetEncoder(ImageFormat format)
    {
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }
}

在上面的示例中,我們首先加載了一個(gè)原始圖像,然后創(chuàng)建了一個(gè)空的Bitmap對象用于存儲壓縮后的圖像。接下來,設(shè)置JPEG壓縮參數(shù),包括壓縮質(zhì)量。最后,使用Graphics.DrawImage方法將原始圖像以JPEG格式壓縮到空Bitmap對象中,并保存為新的壓縮后的圖像。

通過調(diào)整壓縮質(zhì)量參數(shù),可以控制壓縮后圖像的質(zhì)量和文件大小。請注意,壓縮質(zhì)量越低,圖像質(zhì)量會降低,但文件大小也會減小。根據(jù)實(shí)際需求,可以根據(jù)具體情況調(diào)整壓縮質(zhì)量參數(shù)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI