暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

关于数据分析与可视化 2021-09-26
1416

今天来分享几种可以给图片添加水印的方法,都是十分的简单实用,大家在看了之后也可以私底下去自己试试,有些方法需要的代码量就比较少,有些方法需要的代码量就稍微多一些,那我们开始吧

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_mark
          add_mark(file = "test1.jpg", out = "add_mark_test1.jpg",
          mark = "Python", opacity=0.2, angle=30, space=30)
          出来的结果长这个样子

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

          历史文章

          国内最让人失望的景点有哪些?哪些景点冷门却又十分好玩、值得一去,数据来为你揭晓

          Python趣味编程 | 看看如何用Python生成素描风格的自拍照,并且加上Logo

          年轻人逃离大城市之后的下一站选哪儿?用数据来为你揭晓

          干货分享 | 推荐一个更高效的数据清洗方法,建议收藏


          分享、收藏、点赞、在看安排一下?
          文章转载自关于数据分析与可视化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论