超简单,Python 为图片和 PDF 上去掉水印

本文介绍了如何使用Python的Pillow和PyMuPDF库来去除图片和PDF文件中的水印。通过获取图片的RGB信息并替换水印颜色,以及将PDF页面转换为图片处理水印,然后重新保存,从而实现水印的去除。此外,文章还提供了Python学习资源和相关技术储备的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。

在这里插入图片描述

安装模块

PIL:Python Imaging Library 是 python 上非常强大的图像处理标准库,但是只能支持 python 2.7,于是就有志愿者在 PIL 的基础上创建了支持 python 3的 pillow,并加入了一些新的特性。

pip install pillow

pymupdf 可以用 python 访问扩展名为*.pdf、 .xps、 .oxps、 .epub、 .cbz或*.fb2的文件。还支持了许多流行的图像格式,包括多页TIFF图像。

pip install PyMuPDF

导入需要用到的模块

from PIL import Image
from itertools import product
import fitz
import os

获取图片的 RGB

pdf 去水印的原理和图片去水印的原理差不多,小编先从去除上面那张图片的水印开始。学过计算机的小伙伴们都知道 ,计算机中用 RGB 代表红绿蓝,用 (255, 0, 0) 表示红色,(0, 255, 0) 表示绿色,(0, 0, 255) 表示蓝色,(255, 255, 255) 表示白色,(0, 0, 0) 表示黑色,去水印的原理就是将水印的颜色变成白色(255, 255, 255)。

首先获取图片宽和高,用 itertools 模块获取宽和高的笛卡尔积作为像素点。每个像素点的颜色都由 前三位的 RGB 和 第四位的 Alpha 通道构成。Alpha 通道不需要,只要 RGB 数据。

def remove_img():
    image_file = input("请输入图片地址:")

    img = Image.open(image_file)
    width, height = img.size

    for pos in product(range(width), range(height)):
        rgb = img.getpixel(pos)[:3]
        print(rgb)

图片去水印

用微信截图的方式查看水印像素点的 RGB。
在这里插入图片描述
可以看到水印的 RGB 是 (210, 210, 210),这里用 RGB 的和超过 620 就判定是水印点,此时将像素颜色替换为白色。最后保存图片。

rgb = img.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值