在python中我们可以使用openCV给图片添加水印,这里注意openCV无法添加汉字水印,添加汉字水印上可使用PIL库给图片添加水印
一:openCV给图片添加水印
1:安装openCV
1
|
pip install opencv - python |
2:使用openCV给图片添加水印实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# -*- 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给图片添加水印
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# -*- 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为图片加水印的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/huaweichenai/article/details/103097283