【发布时间】:2016-09-23 08:47:48
【问题描述】:
我正在寻找一种以编程方式更改 png 颜色的方法。 到目前为止,我看到的所有解决方案都在使用 getpixel 并逐个像素地检查它。 实际上,我只想更改具有透明背景的图像的前景色。这可能吗?是否有某种调色板可以轻松实现对某种颜色的所有像素的更改?
【问题讨论】:
标签: .net colors png foreground
我正在寻找一种以编程方式更改 png 颜色的方法。 到目前为止,我看到的所有解决方案都在使用 getpixel 并逐个像素地检查它。 实际上,我只想更改具有透明背景的图像的前景色。这可能吗?是否有某种调色板可以轻松实现对某种颜色的所有像素的更改?
【问题讨论】:
标签: .net colors png foreground
调色板是否存在取决于 PNG 颜色类型。如果颜色类型为 3,则 PLTE 块中包含一个调色板,您可以通过执行以下步骤以编程方式更改它:
如果颜色类型为 0 或 2,则可以通过添加 tRNS 块使前景色透明,但如果要将这些像素的底层颜色更改为新的背景色,则必须通过像素您已经观察到的像素。
不过,实际上没有必要更改前景色,因为当您将其设为透明时,RGB 组件包含什么并不重要。
【讨论】: