Python PIL:如何使用这样的版权标识来获取图像?

时间:2011-07-06 17:34:53

标签: python image-processing python-imaging-library photoshop copyright-display

我需要通过填写版权标志来保护我的照片。我的操作系统是Ubuntu 10.10和Python 2.6。我打算使用PIL

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

water mark logo

和这样的照片:

Original Picture

我想使用PIL获取受版权保护的照片,如下所示(用图案填充原始图片):

Copyrighted Picture

通过改变徽标的不透明度

和最终结果:

Final Result

PIL中是否有任何功能可以执行此操作?任何提示?

非常感谢!

2 个答案:

答案 0 :(得分:5)

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

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

这应该可以为您提供足够的信息 - 如果您遇到障碍,发布代码显示您目前所处的内容,并询问有关您遇到困难的具体问题。

答案 1 :(得分:0)

只是一个样本:

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