【问题标题】:Change color of png image更改 png 图像的颜色
【发布时间】:2016-09-23 08:47:48
【问题描述】:

我正在寻找一种以编程方式更改 png 颜色的方法。 到目前为止,我看到的所有解决方案都在使用 getpixel 并逐个像素地检查它。 实际上,我只想更改具有透明背景的图像的前景色。这可能吗?是否有某种调色板可以轻松实现对某种颜色的所有像素的更改?

【问题讨论】:

    标签: .net colors png foreground


    【解决方案1】:

    调色板是否存在取决于 PNG 颜色类型。如果颜色类型为 3,则 PLTE 块中包含一个调色板,您可以通过执行以下步骤以编程方式更改它:

    1. 提取 PLTE 块
    2. 将前景色的条目更改为新的背景色
    3. 重新计算 PLTE 块的 CRC 校验和
    4. 在图像文件中重新插入 PLTE 块
    5. 添加一个 tRNS 块以使该颜色透明。

    如果颜色类型为 0 或 2,则可以通过添加 tRNS 块使前景色透明,但如果要将这些像素的底层颜色更改为新的背景色,则必须通过像素您已经观察到的像素。

    不过,实际上没有必要更改前景色,因为当您将其设为透明时,RGB 组件包含什么并不重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 2016-07-12
      • 1970-01-01
      • 2018-06-20
      • 2018-07-25
      • 2014-02-01
      相关资源
      最近更新 更多