我试图用Python(最好是Python 3)在照片中重新着色(切换颜色)。我有很多几何形状,有黑色边框,白色填充和透明背景。
以下是输入照片的示例。
我希望能够生成一个随机的彩色圆圈。
我从这段代码开始:
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()
这导致:
有没有办法取代白色的最前端而不是透明的背景? (我意识到在这个问题中透明背景显示为白色,但如果你看一下图片,它就会在圆圈周围透明。)
答案 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()