温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C# Bitmap图像与图像压缩算法

发布时间:2024-07-16 12:12:09 来源:亿速云 阅读:201 作者:小樊 栏目:编程语言

在C#中,可以使用System.Drawing命名空间中的Bitmap类来处理图像。要对图像进行压缩,可以使用一些图像压缩算法,比如JPEG、PNG、GIF等。

以下是一个简单的示例,演示如何使用C#中的Bitmap类和JPEG压缩算法对图像进行压缩:

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

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

        // 创建一个空的Bitmap对象,用于存储压缩后的图像
        Bitmap compressedImage = new Bitmap(originalImage.Width, originalImage.Height);

        // 设置JPEG压缩参数
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        Encoder encoder = Encoder.Quality;
        EncoderParameter encoderParameter = new EncoderParameter(encoder, 50L); // 压缩质量,取值范围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;
    }
}

在上面的示例中,我们首先加载了一个原始图像,然后创建了一个空的Bitmap对象用于存储压缩后的图像。接下来,设置JPEG压缩参数,包括压缩质量。最后,使用Graphics.DrawImage方法将原始图像以JPEG格式压缩到空Bitmap对象中,并保存为新的压缩后的图像。

通过调整压缩质量参数,可以控制压缩后图像的质量和文件大小。请注意,压缩质量越低,图像质量会降低,但文件大小也会减小。根据实际需求,可以根据具体情况调整压缩质量参数。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI