我需要通过填写版权标志来保护我的照片。我的操作系统是Ubuntu 10.10和Python 2.6。我打算使用PIL。
假设我有这样的版权标志(You can do this in Photoshop easily):
和这样的照片:
我想使用PIL获取受版权保护的照片,如下所示(用图案填充原始图片):
通过改变徽标的不透明度
和最终结果:
PIL中是否有任何功能可以执行此操作?任何提示?
非常感谢!
答案 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()