超简单!为图片和 PDF 上去掉水印
发布网友
发布时间:2024-09-06 05:58
我来回答
共1个回答
热心网友
时间:2024-09-28 23:44
网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。
为了去除这些水印,可以使用 Python 图像处理库,如 PIL 和 pillow,它们能够处理图像操作,包括去除水印。
安装 pillow 模块,因为 PIL 只支持 Python 2.7,而 pillow 是在 PIL 的基础上创建的,支持 Python 3,并加入了新特性。
另一个选项是 pymupdf,它能够访问多种文件格式,包括 PDF、XPS、EPUB 和 CBZ。
使用这些库,可以导入需要的模块。
去除水印的原理与图片去水印类似。计算机中的 RGB 代表红绿蓝,例如,(255, 0, 0) 表示红色,(0, 255, 0) 表示绿色,(0, 0, 255) 表示蓝色,(255, 255, 255) 表示白色。
首先获取图片的宽和高,用 itertools 获取像素点的笛卡尔积。
对于图片去水印,首先查看水印的 RGB 值,例如 (210, 210, 210)。设定一个阈值,如 RGB 的和超过 620,则判定为水印点,然后将这些像素的颜色替换为白色。
对于 PDF 去水印,原理与图片去水印相似,将 PDF 的每一页转换为 pixmap,修改水印处的 RGB 值为 (255, 255, 255)。
在图片转为 PDF 时,注意图片排序,确保文件名转换为 int 类型后进行排序。
使用 PyMuPDF 打开图片,然后用 convertToPDF() 函数将其转换为单页 PDF,最后将图片插入到新的 PDF 文件中。
总结,通过 Python 的图像处理能力,可以有效去除 PDF 和图片上的水印。