总所周知,Python作为新一代备受欢迎的编程语言,其功能不可谓之不强大。但这具体体现在哪些方面呢?或许很多刚开始学习的小伙伴都会有这样的疑惑。
那么今天介绍下用 Python 去除 PDF (图片)的水印。思路很简单,代码也很简洁。
首先来考虑 Python 如何去除图片的水印,然后再将思路复用到 PDF 上面。
从上图可以明显看到,为了不影响阅读正文,水印颜色一般比较浅。因此,我们可以利用颜色差这个特征来去掉水印。即:用 Python 读取图片的颜色,并将浅颜色部分变白。
Python 标准库 PIL 可以获取图片的颜色,Python2 是系统自带的,Python3 需要自己安装,我用的 Python 3.8,需要执行以下命令安装
pip install pillow
安装完成,读取图片,并获取图片的尺寸(宽度和高度)
from PIL import Image
img = Image.open('watermark_pic.png')
width, height = img.size
进行下一步之前,先简单介绍下计算机里关于颜色的知识。光学三原色是红绿蓝(RGB),也就是说它们是不可分解的三种基本颜色,其他颜色都可以通过这三种颜色混合而成,三种颜色等比例混合就是白色,没有光就是黑色。
在计算机中,可以用三个字节表示 RGB 颜色,1个字节能表示的最大数值是 255, 所以,(255, 0, 0)代表红色,(0, 255, 0)代表绿色,(0, 0, 255)代表蓝色。相应地,(255, 255, 255)代表白色,(0, 0, 0)代表黑色。从(0, 0, 0) ~ (255, 255, 255) 之间的任意组合都可以代表一个不同的颜色。
接下来我们可以通过下面代码读取图片的 RGB
for i in range(width):
for j in range(height):
pos = (i, j)
print(img.getpixel(pos)[:3])
图片每个位置颜色由四元组表示,前三位分别是 RGB,第