重新着色图像与透明背景

问题描述 投票:0回答:1

我正在尝试使用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

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

python python-3.x image-processing python-imaging-library
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.