使用Python创建水印

4
我正在尝试弄清如何创建这种水印,特别是居中的那个(它不是广告,只是我想要实现的完美示例): enter image description here enter image description here

1
你可以使用PIL来完成这个任务;这个问题的答案展示了如何处理普通主图像以及如何正确地处理包含透明度的主图像。 - PM 2Ring
3个回答

5
Python的wand库有一个Image.watermark方法,可以简化常见的水印操作。
from wand.image import Image

with Image(filename='background.jpg') as background:
  with Image(filename='watermark.png') as watermark:
    background.watermark(image=watermark, transparency=0.75)
  background.save(filename='result.jpg')

+1 绝妙的水印代码。我能否从上述代码获得的带水印图片中提取原始图像和水印图像? - akhi1

3

我所在的地方没有安装Python,但应该是这样的。

import Image

photo = Image.open("photo.jpg")
watermark = Image.open("watermark.png")

photo.paste(watermark, (0, 0), watermark)
photo.save("photo_with_watermark.jpg")

Image.paste文档


特别是中心的那个: - user266003

2
您可以使用 pyvips 来完成这个操作:
#!/usr/bin/python3

import sys
import pyvips

image = pyvips.Image.new_from_file(sys.argv[1], access="sequential")

text = pyvips.Image.text(sys.argv[3], dpi=700, rgba=True)

# scale the alpha down to make the text semi-transparent
text = (text * [1, 1, 1, 0.3]).cast("uchar")

# composite in the centre
image = image.composite(text, "over",
    x=int((image.width - text.width) / 2),
    y=int((image.height - text.height) / 2))

image.write_to_file(sys.argv[2])

然后运行(例如):

$ ./watermark.py PNG_transparency_demonstration.png x.png "Hello world!"

制作:

输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接