gpt4 book ai didi

c# - 在不保存的情况下降低 JPEG 图像质量

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:04 28 4
gpt4 key购买 nike

我正在尝试以最快的方式以编程方式降低图像质量。现在,我能够从 byte[] 读取图像,然后作为 MemoryStream 将其读取到 Bitmap 并通过 Drawing。 Imaging.Encoder.Quality 在保存到所需的 20L 时更改其质量。

我想知道是否有一种方法可以在不保存整个图像的情况下执行此操作。有没有办法只更改位图 bmp1,或者创建一个会降低图像质量的新位图?

byte[] imageBytes = convertImageToByteArray(bmpScreenshot);
MemoryStream mem = new MemoryStream(imageBytes);
using (Bitmap bmp1 = (Bitmap)Image.FromStream(mem))
{

ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
ImageCodecInfo jgpEncoder = codecs[1];

System.Drawing.Imaging.Encoder myEncoder =
System.Drawing.Imaging.Encoder.Quality;

myEncoderParameter = new EncoderParameter(myEncoder, 20L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp1.Save(@"C:\TestPhotoQuality20L.jpg", jgpEncoder, myEncoderParameters);
}

最佳答案

而不是将 bmp1 保存到文件中。您可以将其保存到另一个 MemoryStream。然后你可以从这个 MemoryStream 加载一个新的位图。

关于c# - 在不保存的情况下降低 JPEG 图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235156/

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