如何在不损失质量的情况下将 PNG 转换为 BMP
Posted
技术标签:
【中文标题】如何在不损失质量的情况下将 PNG 转换为 BMP【英文标题】:How can I transform a PNG to a BMP without loosing quality 【发布时间】:2015-02-02 03:10:47 【问题描述】:这是一个棘手的问题。首先尝试this,结果很糟糕
Image Dummy = Image.FromFile("image.png");
Dummy.Save("image.bmp", ImageFormat.Bmp);
-----转化为---->
我不知道会发生什么。 有什么线索吗?
【问题讨论】:
这与源图像的透明度有关。我刚刚通过将您的 PNG 保存为白色背景进行了尝试,并且转换工作正常。我已经尝试过 PngBitmapDecoder 类,但我得到了相同的结果,所以还不确定解决方案。 您是否需要 .net 中的程序,或者这仅用于使用提供的图像进行一次转换? 这是我正在编写的脚本,所以我可以从 .net 进程调用的二进制文件也可以解决问题 【参考方案1】:BMP 和 PNG 都是无损的,但 PNG 支持透明度,而 BMP 不支持。因为您的原始图像具有透明度,所以在转换它之前,您应该首先问自己您希望(半)透明像素发生什么,并且不要让 BMP 编码器决定(它似乎做出了一些奇怪的决定,顺便说一句)。
从概念上讲,要删除透明度量,以添加一些不透明的背景(通常为白色或黑色 - 在您的情况下为白色)。要在 C# 中执行此操作,请参阅 this question
【讨论】:
以上是关于如何在不损失质量的情况下将 PNG 转换为 BMP的主要内容,如果未能解决你的问题,请参考以下文章