gpt4 book ai didi

c# - 是否可以减小来自字节数组的图像的大小

转载 作者:太空狗 更新时间:2023-10-29 22:14:32 24 4
gpt4 key购买 nike

我有一个包含 jpeg 图像的字节数组。我只是想知道是否可以减小它的大小?

编辑:好的。我承认了我的错误。那么我的问题是如何降低来自字节数组的图像质量。

最佳答案

天下没有免费的午餐,敬请谅解。通过增加压缩率来减小 JPEG 图像的大小也会降低图像的质量。但是,也就是说,您可以使用 Image 减小 JPEG 图像的大小。类(class)。此代码假定 inputBytes 包含原始图像。

var jpegQuality = 50; 
Image image;
using (var inputStream = new MemoryStream(inputBytes)) {
image = Image.FromStream(inputStream);
var jpegEncoder = ImageCodecInfo.GetImageDecoders()
.First(c => c.FormatID == ImageFormat.Jpeg.Guid);
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, jpegQuality);
Byte[] outputBytes;
using (var outputStream = new MemoryStream()) {
image.Save(outputStream, jpegEncoder, encoderParameters);
outputBytes = outputStream.ToArray();
}
}

现在 outputBytes 包含使用不同 JPEG 质量的图像的重新压缩版本。

通过降低 jpegQuality(应在 0-100 范围内),您可以以降低图像质量为代价提高压缩率。查看Encoder.Quality字段以获取更多信息。

这是一个示例,您可以在其中了解 jpegQuality 如何影响图像质量。它是使用 20、50 和 80 作为 jpegQuality 值压缩的同一张照片。大小为 4.99、8.28 和 12.9 KB。

JPEG quality sample image

请注意即使质量很高,文本也会变得“模糊”。这就是为什么您应该避免将 JPEG 用于具有统一颜色区域的图像(在计算机上创建的图像/图表/图表)。请改用 PNG。对于照片,如果您不过度降低质量,JPEG 非常适合。

关于c# - 是否可以减小来自字节数组的图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9431519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com