python画炫彩圆圈_使用PIL在python上为图像添加透明圆圈

I have a python program that craetes a png file with a circle on it. Now I want this circle to be semi transparent, given an alpha value.

Here is what I do:

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')

how can I make the ellipse semi transparent?

Thanks

解决方案

Instead of a 3-tuple RGB value, (255, 128, 10), pass a 4-tuple RGBA value:

canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5),

fill=(255, 128, 10, 50))

For example,

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值