Python-PIL:如何用这样的版权标识填充图像?

2024-10-04 09:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用版权标识来保护我的照片。我的操作系统是ubuntu10.10和python2.6。我打算用PIL。在

假设我有这样的版权标识(You can do this in Photoshop easily):

water mark logo

一张这样的照片:

Original Picture

我想用PIL来获得以下版权图片(用图案填充原始图片):

Copyrighted Picture

并通过改变徽标的不透明性得到最终结果:

Final Result

PIL中有什么函数可以做到这一点吗?有什么提示吗?在

非常感谢!在


Tags: inyoupil版权图片thisdocan
2条回答

皮尔当然能做到这一点。首先,您需要创建一个包含重复文本的图像。它应该,哦,也许是你想要水印图像的两倍大小(因为你需要旋转它然后裁剪它)。您可以使用Image.new()创建这样的图像,然后ImageDraw.Draw.text()在一个循环中反复将文本粘贴到它上,然后使用图像的rotate()方法将其旋转15度左右。然后使用图像的crop()方法将其裁剪为原始图像的大小。在

要首先组合它,您需要使用ImageChops.multiply()将水印叠加到原始图像的副本上(它将具有100%的不透明度),然后使用ImageChops.blend()以所需的不透明度将水印副本与原始图像混合。在

如果你遇到了路障,这会给你足够的信息,让你知道目前为止你已经掌握了什么,并提出一个具体的问题,说明你有什么困难。在

只是一个样本:

def fill_watermark(): im = Image.open('page.png').convert('RGBA') bg = Image.new(MODE_RGBA, im.size, (255, 255, 255, 0)) logo = Image.open('logo.png') # .rotate(45) if you want, bg transparent bw, bh = im.size iw, ih = logo.size for j in range(bh // ih): for i in range(bw // iw): bg.paste(logo, (i * iw, j * ih)) im.alpha_composite(bg) im.show()

相关问题 更多 >