python给图片增加水印watermark

这段代码展示了如何使用Python的PIL库在图像上添加透明水印。它定义了一个watermark函数,该函数接受图像、文字、大小、颜色和位置参数,并返回带有水印的图像。水印的位置可以设置在图像的中心、右上角、右下角、左下角或左上角。最后,代码读取了一个名为'1.png'的图像,应用了水印并保存为'test.png'。
摘要由CSDN通过智能技术生成

代码如下

import cv2
import numpy
from PIL import Image, ImageFont, ImageDraw


def watermark(image, text, size=None, color=None, alpha=1.0, position=0):
    back = Image.fromarray(image).convert('RGBA') if type(image) is numpy.ndarray else image.convert('RGBA')
    fore = Image.new(back.mode, back.size, (0, 0, 0, 0))
    size = min(back.width, back.height) // 20 if size is None else max(20, size)
    font = ImageFont.truetype("arial.ttf", size)
    w, h = font.getsize(text)
    rgba = (255, 255, 255) if color is None else color
    rgba = rgba + (int(255 * alpha),)
    if position == 0:
        x, y = (back.width - w) // 2, (back.height - h) // 2
    elif position == 1:
        x, y = 8, 4
    elif position == 2:
        x, y = back.width - w - 8, 4
    elif position == 3:
        x, y = back.width - w - 8, back.height - h - 8
    elif position == 4:
        x, y = 8, back.height - h - 8
    draw = ImageDraw.Draw(fore)
    draw.text((x, y), text, rgba, font)
    output = Image.alpha_composite(back, fore).convert('RGB')
    return numpy.uint8(output) if type(image) is numpy.ndarray else output


img_src = '1.png'
image = cv2.imread(img_src, cv2.IMREAD_COLOR)
image = watermark(image, 'watermark', alpha=0.3, position=3, size=80)

cv2.imwrite('test.png', image)

结果如下

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值