gpt4 book ai didi

c# - 从字节转换后图像质量较低

转载 作者:行者123 更新时间:2023-11-30 21:00:56 24 4
gpt4 key购买 nike

给出这个主题的背景。我正在尝试通过使用 memorystream 返回 memorystream.ToArray(); 将图像文件转换为 byte[];但是,我注意到转换 inputBitmap -> byte[] -> outputBitmap 后图像质量下降。outputBitmap 的质量低于 inputBitmap。我把图片转byte[]的代码如下

MemoryStream mstream = new MemoryStream();
myImage.Save(mstream,System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] buffer = mstream.ToArray();

并将 byte[] 转换回图像,

MemoryStream mstream = new MemoryStream(buffer);
Image newImage = Image.FromStream(mstream);

有人可以解释这是为什么并希望指导我纠正这个问题吗?请注意,在我使用 inputBitmap 作为我的 pictureBox.Image 之前,它看起来质量很好。但是在从 byte[] 转换为 outputBitmap 后,将 outputBitmap 设置为我的 pictureBox。图像变得有点模糊且质量低下。

最佳答案

有几件事对我来说很突出。

  1. 您正在保存为 JPG 而不是 PNG 等无损格式。
  2. 您没有设置用于保存图像的压缩质量。

这意味着您可能正在压缩一张已经压缩过的图像,因此在此过程中会丢失更多信息。

如果可以的话,我会更改为将文件保存为 PNG,否则请确保在保存之前将 JPG 的质量设置为 100%。这会将对文件的压缩降至最低,从而最大限度地减少数据丢失。

如果您仍然看到质量差异,那么我能想到的唯一可能解释的是屏幕截图和保存的分辨率(像素数和/或颜色深度)之间的差异文件。确保将目标位图大小和颜色深度设置为与源位图相同。

关于c# - 从字节转换后图像质量较低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14581810/

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