python-实现图片添加文字水印

43次阅读

共计 1118 个字符,预计需要花费 3 分钟才能阅读完成。

在 python 中我们可以使用 openCV 给图片添加水印,这里注意 openCV 无法添加汉字水印,添加汉字水印上可使用 PIL 库给图片添加水印

一:openCV 给图片添加水印

1:安装 openCV

pip install opencv-python

如果安装报错的话,可以参考:https://www.wj0511.com/site/d…

2:使用 openCV 给图片添加水印实例:

# -*- coding: utf-8 -*-
import cv2
# 载入突破
img = cv2.imread('test.jpg')
# 给图片添加文字水印
# cv2.putText(图像, 需要添加字符串, 需要绘制的坐标, 字体类型, 字号, 字体颜色, 字体粗细)
img2 = cv2.putText(img, 'test', (100, 100), cv2.LINE_AA, 2, (249, 249, 249), 4)
# 保存图片
cv2.imwrite('wj.jpg', img2)
# 下面是将生成的图片再弹窗中显示
cv2.imshow('img',img2)
cv2.waitKey(0)
cv2.destoryAllWindows('img')

根据如上代码生成的水印图片如下:

二:使用 PIL 给图片添加水印

# -*- coding: utf-8 -*-
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont
img = cv2.imread('test.jpg')
# 判断是否是 openCV 图片类型
if (isinstance(img, numpy.ndarray)):
    # 转化成 PIL 类型
    img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(img)
# 字体的格式
textSize = 80
fontStyle = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
# 绘制文本
left = 100
top = 100
text = '中国'
textColor = (168, 121, 103)
draw.text((left, top), text, textColor, font=fontStyle)
# 转换回 OpenCV 类型
img2 = cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
# 保存图片
cv2.imwrite('wj.jpg', img2)
cv2.imshow('img',img2)
cv2.waitKey(0)
cv2.destoryAllWindows('img')

根据如上代码现象如下:

正文完
 0