iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python为图片和PDF去水印详解
  • 136
分享到

python为图片和PDF去水印详解

2024-04-02 19:04:59 136人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录安装模块获取图片的 RGB图片去水印pdf 去水印图片转为 pdf总结网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。

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

29ff87305928769313f4b190c5284259.png

安装模块

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。

1941d470a50ef2a5b2cde3ee6827077c.png

可以看到水印的 RGB 是 (210, 210, 210),这里用 RGB 的和超过 620 就判定是水印点,此时将像素颜色替换为白色。最后保存图片。

rgb = img.getpixel(pos)[:3]
if(sum(rgb) >= 620):
    img.putpixel(pos, (255, 255, 255))
 
img.save('d:/qsy.png')

示例结果:

06e69e34c27fcfba5f71e6eb1bb1bad4.png

PDF 去水印

PDF 去水印的原理和图片去水印的原理大致相同,用 PyMuPDF 打开 pdf 文件后,将 pdf 的每一页都转换为图片 pixmap,pixmap 有它自己的 RGB,只需要将 pdf 水印中的 RGB 改为(255, 255, 255) 最后保存为图片。

def remove_pdf():
    page_num = 0
    pdf_file = input("请输入 pdf 地址:")
    pdf = fitz.open(pdf_file);
    for page in pdf:
        pixmap = page.get_pixmap()
        for pos in product(range(pixmap.width), range(pixmap.height)):
            rgb = pixmap.pixel(pos[0], pos[1])
            if(sum(rgb) >= 620):
                pixmap.set_pixel(pos[0], pos[1], (255, 255, 255))
        pixmap.pil_save(f"d:/pdf_images/{page_num}.png")
        print(f"第{page_num}水印去除完成")
        page_num = page_num + 1

示例结果:

a339227d96384fc49f15a76865d5fec2.png

图片转为 pdf

图片转 pdf 需要注意的是图片的排序,数字文件名必须先转换为 int 类型后排序。用 PyMuPDF 模块打开图片后将图片用 convertToPDF() 函数转成单页的 pdf。插入到新的 pdf 文件中。

def pic2pdf():
    pic_dir = input("请输入图片文件夹路径:")
    
    pdf = fitz.open()
    img_files = sorted(os.listdir(pic_dir),key=lambda x:int(str(x).split('.')[0]))
    for img in img_files:
        print(img)
        imgdoc = fitz.open(pic_dir + '/' + img)  
        pdfbytes = imgdoc.convertToPDF()   
        imgpdf = fitz.open("pdf", pdfbytes)
        pdf.insertPDF(imgpdf)       
    pdf.save("d:/demo.pdf")         
    pdf.close()

总结

pdf 和图片上恼人的水印终于可以在强大的 python 面前消失了。小伙伴们学会了吗?

到此这篇关于python为图片和PDF去水印详解的文章就介绍到这了,更多相关python图片和PDF去水印内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python为图片和PDF去水印详解

本文链接: https://www.lsjlt.com/news/162915.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python为图片和PDF去水印详解
    目录安装模块获取图片的 RGB图片去水印PDF 去水印图片转为 pdf总结网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的。...
    99+
    2022-11-13
  • python怎么为图片和PDF去水印
    小编给大家分享一下python怎么为图片和PDF去水印,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比...
    99+
    2023-06-26
  • 超简单!用 Python 为图片和 PDF 去掉水印
    网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读。比如下面的图片就是在 pdf 文件上截取出来的,今天我们就来用Python解决这个问题。安装模块PIL:Python Imaging Library 是 python 上非常强大的...
    99+
    2023-05-14
    图片 Python PDF
  • 【Python】Python 去除图片水印
    在Python中,你可以使用一些图像处理库来去除图片中的水印。其中一个常用的库是OpenCV,它提供了一些强大的图像处理功能。 首先 你需要安装OpenCV库。你可以使用以下命令在终端中安装它: pi...
    99+
    2023-10-18
    python opencv 计算机视觉
  • Python去除图片水印实现方法详解
    目录OpenCV介绍去水印图片去水印原理最近写文章遇到图片有水印,如何去除水印呢? 网上找了各种办法,也跑到小红书、抖音等平台找有没有不收费就去水印的网站,但是基本上都是需要VIP会...
    99+
    2023-01-06
    Python去除图片水印 Python去除水印
  • 运用python去除图片水印
    目录OpenCV + Numpy函数简介色彩转换PIL  + itertools由于图片水印的种类有很多,今天我们先讲最简单的一种。 即上图中的①类水印,这种水印存在白色背景上的文档里,水印是灰色,需要保...
    99+
    2022-06-02
    python去水印 python 图片水印
  • 1行Python代码实现去除图片水印详解
    目录正文一、代码运行,效果演示运行以下代码实现的效果如下二、已有功能正文 最近小明在开淘宝店,需要给自己的原创图片加水印,于是我上次给她开发了增加水印的功能:图片加水印,保护原创图...
    99+
    2023-03-19
    Python一行代码去水印 Python图片去水印
  • Python实现为图片添加水印的示例详解
    目录1、引言2、filestools介绍2.1 安装2.2 filestools 功能介绍2.3 watermarker模块介绍2.4 代码实例补充1、引言 小屌丝:鱼哥,这个周末过...
    99+
    2022-11-13
  • Python批量图片去水印的方法
    ​平常工作中,有时为了采用网络的一些素材,但这些素材往往被打了水印,如果我们不懂PS就无法去掉水印,或者无法批量去掉水印。这些就很影响我们的工作效率。 今天我们就一起来,用Python + OpenCV三...
    99+
    2022-06-02
    Python批量图片去水印 Python 图片去水印
  • Python实现为PDF去除水印的示例代码
    目录前言原理特色成果安装依赖代码想法前言 为什么做出这个? 就是有时候从网上下载的资料中的pdf有水印,看着不舒服。 比如说我从网上下载的试卷,然后去打印店打印,打印之后水印看着很不...
    99+
    2022-11-13
  • Python如何为图片添加水印
    添加水印的主要目的是为了版权保护,使自己的图像不被抄袭或者恶意转载。网上有很多制作水印的工具,本帖介绍怎么使用Python-Pillow库给图片添加水印。 使用ImageMagick添加图片水印-Linux...
    99+
    2022-06-04
    水印 何为 图片
  • 详解Python如何实现批量为PDF添加水印
    目录准备环境获得经销商名字对应的列表生成水印PDF合并水印与目标PDF总结我们有时候需要把一些机密文件发给多个客户,为了避免客户泄露文件,会在机密文件中添加水印。每个客户收到的文件内...
    99+
    2022-11-10
  • python怎么去掉图片上的文字水印
    要去掉图片上的文字水印,可以使用Python中的图像处理库PIL(Python Imaging Library)来实现。下面是一个示...
    99+
    2023-08-12
    python
  • 织梦去掉上传图片的水印或者改为自己设计的水印
    在用织梦建站或仿站中,都会遇到上传图片这个功能,但是这图片上传是有水印,所以我们要把水印去掉或者改为自己设计的水印。 一共有几个步骤: 1、登录织梦后台 2、点击系统设置,在点击系统设置里面的图片水印设置 ,,如图 &n...
    99+
    2022-06-12
    织梦 去掉水印 上传图片
  • 织梦怎么去掉上传图片的水印改为自己设计的水印
    在用织梦建站或仿站中,都会遇到上传图片这个功能,但是这图片上传是有水印,所以我们要把水印去掉或者改为自己设计的水印。 一共有几个步骤: 1、登录织梦后台 2、点击系统设置,在点击系统设置里面的图片水印设置 ,,如图 &n...
    99+
    2022-06-12
    织梦 上传图片 水印
  • Python实现处理图片水印的方法详解
    原图:  去水印后: 程序非常简单,首先读取图片后,转为HSV通道图像。 image = cv2.imread("watermark.png") HSV = cv2...
    99+
    2022-11-11
  • Python编程OpenCV和Numpy图像处理库实现图片去水印
    目录OpenCV + Numpy函数简介色彩转换PIL + itertools大家好,我是小五 前一阵给大家分享了,Python如何给图片加水印。评论区就有小伙伴问,可不可使用Pyt...
    99+
    2022-11-12
  • Java实现添加文字水印&图片水印的方法详解
    目录为什么要给图片添加水印绘制文字水印动态计算字符串的宽度自适应文字水印位置绘制图片水印提升图片处理速度为什么要给图片添加水印 为图片添加水印的主要作用是保护图片版权,防止图片被未经...
    99+
    2023-02-06
    Java添加文字水印 Java添加图片水印 Java添加水印
  • .Net实现图片裁剪图片缩放及图片加水印详解
    目录引言(1)原图裁剪后的效果如下(2)原图缩略后的效果如下(3)原图加文字水印后的效果如下(4)原图加图片水印后的效果如下引言 图片的裁剪、缩放、与加水印,是任何系统经常要用到的功...
    99+
    2022-11-13
  • 怎么用1行Python代码实现去除图片水印
    这篇“怎么用1行Python代码实现去除图片水印”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用1行Python代码实现...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作