我有一个python程序,可以在其上创建一个带圆圈的png文件。现在我希望这个圆是半透明的,给定一个alpha值。
以下是我的工作:
img_map = Image.new(some arguments here)
tile = Image.open('tile.png')
img_map.paste(tile, (x,y))
canvas = ImageDraw.Draw(img_map)
# Now I draw the circle:
canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5), fill=(255, 128, 10))
# now save and close
del canvas
img_map.save(path_out + file_name, 'PNG')
如何使椭圆半透明?
由于
答案 0 :(得分:2)
代替3元组RGB值(255,128,10),传递4元组RGBA值:
canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5),
fill=(255, 128, 10, 50))
例如,
import Image
import ImageDraw
img = Image.new('RGBA', size = (100, 100), color = (128, 128, 128, 255))
canvas = ImageDraw.Draw(img)
# Now I draw the circle:
p_x, p_y = 50, 50
canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5), fill=(255, 128, 10, 50))
# now save and close
del canvas
img.save('/tmp/test.png', 'PNG')
答案 1 :(得分:0)
我使用Image.composite(background, foreground, mask)
来掩盖前景中的半透明圆圈。
我按照这里的说明操作: Merging background with transparent image in PIL
感谢@ gareth-res