【问题标题】:Use a color to create an alpha channel for a PNG?使用颜色为 PNG 创建 alpha 通道?
【发布时间】:2011-06-30 20:37:11
【问题描述】:

我有几张声称具有透明背景但实际上是白色的图像。我想使用 Python Image Library/PIL 将白色背景颜色设置为实际上是透明的。

由于 PNG 使用 alpha 通道,我很想通过从图像边缘找到连续的白色区域来创建 alpha 通道(所以当图像包含白色数据时,我不会得到透明度的“洞”) .

关于如何以这种方式创建 Alpha 通道的任何提示?

【问题讨论】:

  • 你需要一个洪水填充,你必须对你如何应用它很可爱。您想处理一侧中间的“内陆”白色区域吗?无论如何,如果图像有任何部分透明度,这将不起作用。你不能解决实际问题并在源图像中获得适当的 alpha 吗?

标签: python image transparency python-imaging-library


【解决方案1】:

我猜你想从外面以螺旋形穿过图像,如果它是白色的,则将一个像素设置为透明,并且靠近边缘的一个像素是 也是白色的 透明的。在不改变任何像素的情况下完成一整圈后停止。

写这样的循环应该不会太难。

做某种flood fill,从白色边缘像素播种。

【讨论】:

  • 您必须先对后台缓冲区执行此操作。而且你需要找到一条通往边缘的路径,只有一个像素不是正确的测试。
  • @David Heffernan - 这就是你从边缘开始的原因。
  • @Orange 编辑使它变得更好,但您仍然需要一条透明路径一直到边缘。你为什么不以标准递归方式进行洪水填充? en.wikipedia.org/wiki/Flood_fill
  • @David Heffernan - 这不是洪水填充。假设图像中没有透明度,则将边缘旁边的所有白色区域设置为透明。
  • @David Heffernan - 如果 OP 想要进行洪水填充,他们可以,但您需要先通过才能找到正确的种子点。
猜你喜欢
  • 2013-06-01
  • 2011-08-02
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
相关资源
最近更新 更多