目录
  • 一:opencv给图片添加水印
  • 二:使用pil给图片添加水印

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

一:opencv给图片添加水印

1:安装opencv

pip install opencv-python

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')

根据如上代码现象如下:

以上就是python实现图片加水印方式opencv和pil库的详细内容,更多关于使用python为图片加水印的资料请关注www.887551.com其它相关文章!