大家好,我是一个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
看到官方库提供了不同的测试,我还没有来得及对图片进行修改,就迫不及待分享出来啦,感兴趣的可以围观!!!