我需要用版权标志来保护我的照片。我的操作系统是 Ubuntu 10.10 和 Python 2.6。我打算使用PIL。
假设我有一个这样的版权标志(你可以在 Photoshop 中轻松地做到这一点):
和这样的图片:
我想使用 PIL 来获取受版权保护的图片,如下所示(用图案填充原始图片):
通过更改徽标的不透明度获得最终结果:
PIL中是否有任何功能可以做到这一点?有什么提示吗?
非常感谢!
我需要用版权标志来保护我的照片。我的操作系统是 Ubuntu 10.10 和 Python 2.6。我打算使用PIL。
假设我有一个这样的版权标志(你可以在 Photoshop 中轻松地做到这一点):
和这样的图片:
我想使用 PIL 来获取受版权保护的图片,如下所示(用图案填充原始图片):
通过更改徽标的不透明度获得最终结果:
PIL中是否有任何功能可以做到这一点?有什么提示吗?
非常感谢!
PIL当然有能力做到这一点。首先,您需要创建一个包含重复文本的图像。它应该是,哦,可能是您想要添加水印的图像大小的两倍(因为您需要旋转它然后裁剪它)。您可以使用Image.new()
创建这样的图像,然后ImageDraw.Draw.text()
在循环中反复将文本粘贴到其上,并将图像的rotate()
方法旋转 15 度左右。然后使用图像的方法将其裁剪为原始图像的大小crop()
。
要首先组合它,您需要使用ImageChops.multiply()
将水印叠加到原始图像的副本上(它将具有 100% 的不透明度),然后ImageChops.blend()
以所需的不透明度将水印副本与原始图像混合。
这应该为您提供足够的信息以继续前进 - 如果您遇到障碍,发布代码以显示您到目前为止所获得的内容,并询问您遇到困难的具体问题。
只是一个样本:</p>
#!/usr/bin/python
# -*- coding: utf-8 -*-
from PIL import Image
def fill_watermark():
im = Image.open('a.jpg').convert('RGBA')
bg = Image.new(mode='RGBA', size=im.size, color=(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()
fill_watermark()