Python 图像库的透明度
我正在尝试使用 Python 图像库在 Facebook 个人资料图片 (jpg) 上放置一个部分透明的 PNG 水印。应该透明的部分只是变成白色。这是我的代码:
con = urllib2.urlopen('facebook_link_to_profile_pic')
im = Image.open(cStringIO.StringIO(con.read()))
overlayCon = urllib2.urlopen('link_to_overlay')
overlay = Image.open(cStringIO.StringIO(overlayCon.read()))
im.paste(overlay, (0, 0))
im.save('name', 'jpeg', quality=100)
我尝试了几种不同的方法,但没有任何效果。任何帮助表示赞赏。
I'm trying to place a PNG watermark with partial transparency on top of a Facebook profile pic (jpg) using the Python Image Library. The part that should be transparent simply comes off as white. Here's my code:
con = urllib2.urlopen('facebook_link_to_profile_pic')
im = Image.open(cStringIO.StringIO(con.read()))
overlayCon = urllib2.urlopen('link_to_overlay')
overlay = Image.open(cStringIO.StringIO(overlayCon.read()))
im.paste(overlay, (0, 0))
im.save('name', 'jpeg', quality=100)
I've tried a few different ways, but haven't gotten anything to work. Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
paste
的第三个选项是遮罩(请参阅文档)。它接受 RGBA 图像,因此最简单的解决方案是再次使用叠加图像:im.paste(overlay, (0, 0), overlay)
。The 3rd option to
paste
is a mask (see the docs). It accepts an RGBA image, so the simplest solution is to use your overlay image again:im.paste(overlay, (0, 0), overlay)
.