数字水印,即通过某种算法,在不影响原有多媒体价值及使用的前提下,将标识信息嵌入到多媒体文件中的技术。数字水印利用人体感官自身的不敏感性和信息本身存在的冗余,采用硬件或软件的方法将图像、文本等一切可以作为标识信息的数字信号与原始载体融合并深深隐藏其中。并且在必要时可检测或提取秘密信息。
数字水印技术是一种被动保护工具,只能标记数据,无法阻止原始数据的非法使用。其基本特性如下:
根据数字水印的嵌入位置可以分为:
利用LSB算法给图片文件添加文本类型水印。
from PIL import Image
#图片文件
img=Image.open(r'/Users/sherry/Downloads/杀生丸.jpeg')
rgb_img=img.convert('RGB')
#水印信息
text='作者:sherry_sun,2023-09-11'
bin_text=''.join(format(ord(i),'08b') for i in text)
k=0
while True:
if k==len(bin_text):
break
i=(k//3)//img.size[1]
j=(k//3)%img.size[1]
data=list(img.getpixel((i,j)))
data[k%3]=(data[k%3]-data[k%3]%2)+int(bin_text[k])
img.putpixel((i,j),tuple(data))
k=k+1
img.save('/Users/sherry/documents/杀生丸1.jpeg')