Python使用Pillow添加图片水印[python高级]

如果在某个网站上发布了图片,希望在图片上会出现带标识的水印着怎么办呢。

这个是个比较常见的需求,在Python中应该如何处理这一类需求呢?

需要先安装Pillow: pip install pillow

Demo代码:

import sys

from PIL import Image, ImageDraw, ImageFont

def watermark_with_text(file_obj, text, color, fontfamily=None):

    image = Image.open(file_obj).convert('RGBA')

    draw = ImageDraw.Draw(image)

    width, height = image.size

    margin = 10

    if fontfamily:

        font = ImageFont.truetype(fontfamily, int(height / 20))

    else:

        font = None

    textWidth, textHeight = draw.textsize(text, font)

    x = (width - textWidth - margin) / 2  # 计算横轴位置

    y = height - textHeight - margin  # 计算纵轴位置

    draw.text((x, y), text, color, font)

    return image

if __name__ == '__main__':

    org_file = sys.argv[1]

    with open(org_file, 'rb') as f:

        image_with_watermark = watermark_with_text(f, 'py.com', 'red')

    with open('new_image_water.jpg', 'wb') as f:

        image_with_watermark.save(f)

使用方法: python watermart.py <图片地址>

这个只是把文本嵌入到图片中的实现,其实也可以嵌入一个图片进去的。具体可以参考pillow官方文档:

https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.alpha_composite

以上是 Python使用Pillow添加图片水印[python高级] 的全部内容, 来源链接: utcz.com/z/540345.html

回到顶部