首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C#内存中使用JPEG或PNG压缩图像?

在C#内存中使用JPEG或PNG压缩图像,可以通过使用System.Drawing命名空间中的相关类和方法来实现。

对于JPEG压缩,可以使用System.Drawing.Imaging命名空间中的EncoderParameters和Encoder类。下面是一个示例代码:

代码语言:csharp
复制
using System.Drawing;
using System.Drawing.Imaging;

public byte[] CompressImageToJpeg(Image image, long quality)
{
    EncoderParameters encoderParams = new EncoderParameters(1);
    encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, quality);

    ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg");
    using (MemoryStream ms = new MemoryStream())
    {
        image.Save(ms, jpegCodec, encoderParams);
        return ms.ToArray();
    }
}

private ImageCodecInfo GetEncoderInfo(string mimeType)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
    foreach (ImageCodecInfo codec in codecs)
    {
        if (codec.MimeType == mimeType)
        {
            return codec;
        }
    }
    return null;
}

上述代码中,CompressImageToJpeg方法接受一个Image对象和一个quality参数,将图像以JPEG格式进行压缩,并返回压缩后的字节数组。quality参数表示压缩质量,取值范围为0-100。

对于PNG压缩,可以使用System.Drawing命名空间中的Image.Save方法,并指定ImageFormat.Png作为保存格式。下面是一个示例代码:

代码语言:csharp
复制
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public byte[] CompressImageToPng(Image image)
{
    using (MemoryStream ms = new MemoryStream())
    {
        image.Save(ms, ImageFormat.Png);
        return ms.ToArray();
    }
}

上述代码中,CompressImageToPng方法接受一个Image对象,将图像以PNG格式进行压缩,并返回压缩后的字节数组。

这些方法可以在C#中使用JPEG或PNG压缩图像,并将其保存在内存中的字节数组中。根据实际需求,可以选择适合的压缩质量和格式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券