重新着色图像与透明背景

时间:2017-07-09 19:33:48

标签: python python-3.x image-processing python-imaging-library

我试图用Python(最好是Python 3)在照片中重新着色(切换颜色)。我有很多几何形状,有黑色边框,白色填充和透明背景。

以下是输入照片的示例。

White Circle

我希望能够生成一个随机的彩色圆圈。

我从这段代码开始:

start_color = (0,0,0) # white
new_color = (255,255,255) # black
# Open image
shape_img = Image.open('circle_example.png').convert('RGB')
shape_data = np.array(shape_img)
# Replace start color with new color
shape_data[(shape_data == start_color).all(axis = -1)] = new_color
# Convert back to image
final_image = Image.fromarray(shape_data, mode='RGB')
final_image.show()

这导致:

final_image

有没有办法取代白色的最前端而不是透明的背景? (我意识到在这个问题中透明背景显示为白色,但如果你看一下图片,它就会在圆圈周围透明。)

1 个答案:

答案 0 :(得分:0)

我确实找到了答案。我也需要导入alpha级别。

import numpy as np
from PIL import Image
start_color = (0, 0, 0, 255) # white
new_color = (255, 255, 255, 255) # black
# Open image
shape_img = Image.open('circle_example.png').convert('RGBA')
shape_data = np.array(shape_img)
# Replace start color with new color
shape_data[(shape_data == start_color).all(axis = -1)] = new_color
# Convert back to image
final_image = Image.fromarray(shape_data, mode='RGBA')
final_image.show()