我正在调整可能有 Alpha 通道的 png 图像的大小。
一切正常,但有一个例外:
我在透明区域周围得到一些灰色像素。
原始图像没有任何阴影。
有没有办法解决这个问题/解决它?
我正在使用 Gustavo Daud 的 SmoothResize (请参阅第一个答案这个问题 https://stackoverflow.com/questions/2437714/resize-png-image?lq=1),调整 png 图像的大小。
我无法提供我正在使用的代码,因为它不是我编写的,也没有作者的发布许可。
我怀疑这是由两件事引起的:PNG 中有趣的 RGBA 值和天真的调整大小代码。
您需要检查您的 PNG 内容。您正在寻找透明区域中的 RGB 值。尽管透明区域的 Alpha 值为 0,但它们仍然具有 RGB 信息。在你的情况下,我希望透明区域填充黑色 RGB 值。如果简单地完成调整大小,这可能会导致调整大小后出现灰色轮廓。示例:如果代码将 2 个调整像素 (0,0,0,0) 和 (255,255,255,255) 的大小调整为 1 个,会发生什么情况?两个像素各占 50%,结果为 128,128,128,128),即半透明灰色。当您放大例如 x1.5 时,也会发生同样的情况,原始两个像素之间添加的像素将是灰色的。通常这种情况不会发生,因为图像编辑软件足够智能,可以用最近的可见像素的颜色填充这些不可见的像素。
您可以尝试通过用白色(或图像边框上的其他颜色)填充透明区域来“修复”PNG。
另一种方法是使用高级调整大小代码(编写或查找库),这将忽略透明像素 RGB 值(例如,通过从最近的非透明像素获取 RGB)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)