PIL替换颜色而不影响边缘

时间:2014-10-07 15:39:46

标签: python image image-processing python-imaging-library

我有一个用黑线绘制的相对复杂的图像,我想将背景颜色从白色变为随机颜色。

使用PIL我用颜色替换所有非黑色像素:

  pixels = output.getdata()
  newPixels = []

  for pixel in pixels:
    if pixel[0] != 0 and pixel[1] != 0 and pixel[2] != 0:
      newPixels.append(color)
    else:
      newPixels.append(pixel)

  output.putdata(newPixels)

这使得线条全部呈锯齿状,因为我替换边缘平滑也不是完全黑色的像素。任何解决方案?

1 个答案:

答案 0 :(得分:1)

看来你想保留纯黑色并取代纯白色。其他一切都需要混合。

这是进行混合的最简单方法:

newPixels.append([pixel[i] * color[i] // 255 for i in (0,1,2)])