Python实现PDF(图片版)水印的去除
这里写自定义目录标题
- 欢迎使用Markdown编辑器
- PDF文件转换成一个个的图片
- 对图片内的水印去除
- 将图片转换成PDF
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
PDF文件转换成一个个的图片
下面展示一些 内联代码片
。
def ex_img(file): # file 是文件路径+文件名,从pdf中提取图片,实现水印去除""":param file: PDF文件路径:return:提取的图片地址位于原PDF地址+img文件夹内"""print('图片提取开始')(filepath, tempfilename) = os.path.split(file)export_file = filepath + '\\img'mkdir(export_file)doc = fitz.open(file)temp = 0for pg in range(doc.pageCount):page = doc[pg]temp += 1rotate = int(0)# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。zoom_x = 2.0zoom_y = 2.0trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pm = page.getPixmap(matrix=trans, alpha=False)pic_name = '{}.jpg'.format(temp)# 拼接生成pdf的文件路径pic_pwd = os.path.join(export_file, pic_name)pm.writePNG(pic_pwd)de_water(pic_pwd) #去图片水印print('图片提取+去水印完成')
对图片内的水印去除
先简单介绍下计算机里关于颜色的知识。光学三原色是红绿蓝(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的数值越大
下面展示一些 内联代码片
。
# 去除图片里的水印
def de_water(jpg_file):img = Image.open(jpg_file)# print(img)width, height = img.size # 图片长宽# 读取图片的RGB,,读取长宽方向的每一个像素for i in range(width):for j in range(height):pos = (i, j)# print(img.getpixel(pos)[:3]) # 图片每个位置颜色由四元组表示,前三位分别是 RGB,第四位是 Alpha 通道,我们不需要关心。if sum(img.getpixel(pos)[:3]) >= jpg_num and sum(img.getpixel(pos)[:3]) < 765: # 一般水印的颜色会淡于页面内容,颜色越淡,RGB越大# print(img.getpixel(pos)[:3])img.putpixel(pos, (255, 255, 255)) # 将水印的颜色变为白色img.save('D:\\tool\\python 代码\\panpdf_v1.6\\De watermark\\img\\watermark_removed_pic.png')
将图片转换成PDF
def create_pdf(src): # 将单个的图片转为pdf""":param src: 原文件地址:param dst: 新文件地址,若想在原文件上修改,设置dst = src:return:"""print('pdf创建开始')# 大概改了改,没看具体实现。此处是为了将指定文件夹下得图片合并为pdf(filepath, tempfilename) = os.path.split(src)part_file = filepath + '\\img' # ex_img 中pdf转成图片后存放的地址,调整图片大小后的位置pdf_part_file = filepath + '\\pdf'mkdir(pdf_part_file)img_open_list = [] # 创建打开后的图片列表for root, dirs, files in os.walk(part_file):for i in natsorted(files):file = os.path.join(root, i) # 遍历所有图片,带绝对路径img_open = Image.open(file) # 打开图片if img_open.mode != 'RGB': # and int(i.replace('t_','').replace('.png','')) > 300:# print(i)img_open = img_open.convert('RGB') # 转换图像模式img_open.save(pdf_part_file + "\\t_{}.pdf".format(i), "PDF", resolution=100.0, save_all=True)print('pdf创建成功')def join(otherpath, pdf_writer): # 给原文档加入指定文件页面''':param otherpath: 插入的文件路径:param pdf_writer: PdfFileWriter(),打开pdf文件:return:'''pdf_reader = PdfFileReader(otherpath) # 要插入的文档path路径for page in range(pdf_reader.getNumPages()): # 在文档开头加入# 把每张PDF页面加入到这个可读取对象中pdf_writer.addPage(pdf_reader.getPage(page))def makePdf(src, dst): # src 应该是临时存放pdf的路径+文件名.pdf,out_file是输出路径+文件名.pdfprint('pdf合并开始')(filepath, tempfilename) = os.path.split(src)t = 0 # 用来计数pdf的位置pdf_part_file = filepath + '\\pdf'for root, dirs, files in os.walk(pdf_part_file):for i in natsorted(files):file = os.path.join(root, i) # 遍历所有pdf,带绝对路径if t == 0: # 打开第一个pdf文件,把后续文件添加到第一个文件pdf = PdfFileReader(file)pdf_writer = PdfFileWriter()pdf_writer.addPage(pdf.getPage(0)) # 每个pdf文件只有1页else:join(file, pdf_writer)t += 1with open(dst, 'wb') as output_pdf: # 写入pdf_writer.write(output_pdf)print('pdf合并完成')
Python实现PDF(图片版)水印的去除相关推荐
- Python脚本实现图片加水印
起步 图片是指由图形.图像等构成的平面媒体,有形式的事物,我们看到的,是图画.照片.拓片等的统称. 为了保护一些原创图片的版权,某些时候我们需要在图片上面,加上水印,当然你可以用Photoshop来做 ...
- python图片加水印_怎么在照片上加水印-用Python实现给图片增加水印
背景描述 在写文章的时候,经常需要用到一些图,为了访问被别人盗图,通常的做法是给图片添加水印. 本文分享如何使用python批量给图片添加水印. 界面展示 软件的界面如下: 软件的效果如下: 功能介绍 ...
- 图片的水印怎么去除?这几种图片去水印方法很简单
图片的水印怎么去除掉呢?去除图片水印可以让图片看起来更加美观和专业.对于设计师.广告人员.网站管理员等,他们通常需要使用高质量的图片来制作宣传材料或网站内容.但是,当他们在网上搜寻图片时,很多图片都带 ...
- 如何使用python给PDF文件加水印
Python作为编程界最火的语言,能做的事几乎你能想到的它都能干,就连抢茅台都可以,还有什么不行?! Python作为脚本编程语言,可以做很多事情.使用Python,你可以轻松地给pdf加上水印. 你 ...
- python水印_用python来给图片加水印
有时候我想在图片上添加自己的水印来防止别人盗图,所以今天给大家分享如何用python给我们的图片添加上水印.我们先来看看效果. 可以看到右下角就有了我们公众号的名称的水印,是不是超级厉害?那我们看看代 ...
- python 批量给图片加水印
在实际工作中可能会遇到批量给图片添加水印,这些水印可能是每个图片不一样的,但是格式要统一,字体.间距,位置等,要协调.怎么实现呢? 以下是用python实现的具体步骤: 数据情况: 统一标准命名的图片 ...
- 21天精通python-21天学通Python 完整pdf扫描版[58MB]
21天学通Python全面.系统.深入地讲解了Python编程基础语法与高级应用.在讲解过程中,通过大量实际操作的实例将Python语言知识全面.系统.深入地呈现给读者.此外,作者专门为本书录制了大量 ...
- python 读取pdf图片_使用Python从pdf中提取图像
下面是一些使用pyPdf读取PDF文件.提取图像并将它们生成为PIL.Image的代码.你需要根据自己的需要修改它,这里只是演示如何遍历对象树.在import io import pyPdf impo ...
- python pdf 图片水印_怎样用python给pdf批量添加水印并加密
很多时候需要给pdf添加水印,而且还要加密文件,这些在Python中是如何实现的呢?学过编程的小伙伴准备好迎接今天的挑战吧. 1.设置路径 import os os.getcwd() os.chdir ...
- python显示gif图片_Python给gif图片加文字水印
为了成批地给图像增加水印,我们这里用到了枕头模块.它的英文名为pillow.安装它的方式为用cmd命令打开DOS提示符窗口,然后输入pip install pillow即可.就像下面这样: pytho ...
最新文章
- 【Android】Activity生命周期(亲测)
- jedis_通过Jedis API使用排序集
- 德国艺术家用99部手机成功在Google地图上制造交通阻塞
- 100个程序员学习的网站
- NSMutableArray的一些知识
- showdoc windows 搭建_ShowDoc的搭建
- BugkuCTF-Crypto题rsa
- canopy算法流程_Canopy聚类算法(经典,看图就明白)
- 5005.boost之asio简单反射型服务器客户端
- Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
- C++里大写TRUE和小写true(BOOL与bool)
- 软件架构设计的几点理解
- vmware8.0.4序列号及汉化包安装
- 4款好用流程图软件,都是经验总结出来的
- PCL单选点和框选点
- 街头霸王全人物故事背景
- 达梦8初始化参数之BLANK_PAD_MODE
- 计算房租收入比(1)- scrapy 爬取网上租房信息
- JPEG文件格式分析及举例验证
- JavaScript实现逆波兰式
热门文章
- 学习笔记(02):【中国PHP教育大牛高洛峰】亲授php教程-PHP整型(integer)和浮点型(float或double)...
- 给idea设置注释(超便捷)
- Windows10下Tensorflow启用GPU加速,显卡GTX1060,踩坑记录
- 阿里云RDS数据库设置
- mysql 字段值分布很少的字段要不要加索引
- iOS生成图片分享到微信的一种方法
- 哪些原因会导致头晕头痛,日常应该如何去注意呢?
- 哪款蓝牙耳机音质好?内行推荐四款高音质蓝牙耳机
- 每日一题:【LeetCode】495.提莫攻击
- 获取iframe里面的数据