美文网首页
Python的惊喜——隐形水印

Python的惊喜——隐形水印

作者: 日月山河永在 | 来源:发表于2021-02-08 18:15 被阅读0次

    大家好,我是一个Python小白,不知道大家有没有玩过微信上的跳一跳,别人跳的出奇的远,自己跳了几步就掉了,后来发现python连接手机,用代码经过一系列的计算可以实现一直跳下去,在网上看到几篇分享,可能是自己刚入门学习,看不太懂,不太理解,不过看到是和图片有关系,然后就想用python处理一张图片吧,首先想到的就是水印,而看的见的水印几乎很容易做到,无意中看到网上有一篇帖子提到隐形水印,这好有趣,于是就有了下面的惊喜:

    处理图片目的不仅仅是为了美化,就比如隐形水印,目的是对图片形成一种保护,一种隐形的保护,然后Python就有现成的库invisible-watermark,直接就提供这种功能,这对于我一个刚接触Python不久的人,无异于就像发现了新大陆啊!!!!

地址:https://github.com/ShieldMnt/invisible-watermark,说的好详细,对小白很友好!感谢开发人员!

安装的过程就很简单啦,用的刚刚学到的pip,安装时间有点久,可以使用国内源哦

pip install invisible-watermark -i https://pypi.douban.com/simple/

首先准备一张png图片:

原图

加隐形水印代码如下:

    其中,wm就是要加的水印,也就是'jump'。

#!/usr/bin/python3

import cv2

from imwatermark import WatermarkEncoder

bgr = cv2.imread('jump.png')

wm = 'jump'

encoder = WatermarkEncoder()

encoder.set_watermark('bytes',wm.encode('utf-8'))

bgr_encoded = encoder.encode(bgr, 'dwtDct')

cv2.imwrite('jump_wm.png',bgr_encode)

加了隐形水印的图片如下,与原图无差别:

已加水印

解水印的代码如下:

#!/usr/bin/python3

import cv2

from imwatermark import WatermarkDecoder

bgr = cv2.imread('jump_wm.png')

decoder = WatermarkDecoder('bytes', 32)

watermark = decoder.decode(bgr, 'dwtDct')

print(watermark.decode('utf-8'))

得到的输出内容是:

jump

    看到官方库提供了不同的测试,我还没有来得及对图片进行修改,就迫不及待分享出来啦,感兴趣的可以围观!!!

相关文章

网友评论

      本文标题:Python的惊喜——隐形水印

      本文链接:https://www.haomeiwen.com/subject/iblfxltx.html