社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】分享几个用Python给图片添加水印的方法,简单实用

机器学习初学者 • 3 年前 • 381 次点击  
今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多一些,那我们开始吧
opencv模块

首先我们用opencv这个库来给图片添加水印,主要用到的函数是cv2.putText()方法,里面共有大概9个参数,当然我们并不需要将这个9个参数统统用到,

下面分别为大家来讲述一下cv2.putText()方法中9个参数的含义,介绍如下:
  • image:印有水印的图片
  • text:水印的具体文字
  • org:水印放置的横纵坐标,(x坐标,y坐标)
  • font、fontScale:水印的字体相关的参数
  • color:水印的颜色
  • thinkness、lineType、bottomLeftOrigin:印有水印的图片相关的设置,线条的粗细哇、线条的样式哇等等
下面我们来看一下具体的代码把
img=cv2.imread("test2.jpg") # 导入我们需要添加水印的图片RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)blank_img = np.zeros(shape=(RGB_img.shape[0],RGB_img.shape[1],3), dtype=np.uint8)font = cv2.FONT_HERSHEY_SIMPLEX# 添加水印的文字内容cv2.putText(blank_img,text='Learn Python',org=(40, 90),            fontFace=font,fontScale= 2,            color=(255,0,0),thickness=10,lineType=cv2.LINE_4)
然后我们将印有水印的图片和原图进行结合,代码如下
blended = cv2.addWeighted(src1=RGB_img, alpha=0.7,                          src2=blank_img, beta=1, gamma = 2)plt.imshow(blended)
出来的结果是这样

PIL模块
PIL是Python的第三方图像处理库,其中Image模块作为PIL库的基本核心类,可以用来例如加载图像和创建新图像等用途,而说到给在图片上添加水印,要用到的方法就是ImageDraw.Draw.text(),里面有包括6个参数,其中经常被用到的也就下面四个
  • xy:添加水印的坐标,x坐标和y坐标
  • text:具体添加水印的文本内容
  • fill、font:具体文本内容的样式、字体大小等等
下面我们来看一下具体的代码长什么样子
im = Image.open('test1.jpg')draw = ImageDraw.Draw(im)text = "Learn Python"# 设置字体、字体大小等等font = ImageFont.truetype('arial.ttf', 33)# 添加水印draw.text((50, 50), text, font=font)im.show()# 保存图片im.save('watermark2.jpg')
出来的结果是这个样子

filestools模块
最后我们要介绍的则是filestools模块,其本质上也是对ImageDraw.Draw.text()方法做了进一步的封装,让我们用起来会更加的简便,对比前者,我们使用add_mark()方法可以生成数量较多的水印,该方法当中里面有8个参数,其中比较重要的几个是
  • mark:水印的文字内容
  • color、size、opacity、space、angle:水印文字的样式包括文字的大小、颜色、透明程度等等
我们现在来看一下具体的代码
from watermarker.marker import add_markadd_mark(file = "test1.jpg", out = "add_mark_test1.jpg",         mark = "Python", opacity=0.2, angle=30, space=30)
出来的结果长这个样子

具体采用哪种方法,读者可以自己斟酌地来使用,学习愉快!
往期精彩回顾




本站qq群851320808,加入微信群请扫码:
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/120552
 
381 次点击