抖音粉丝的PDF修改图片合集(包含PDF和png互相转换代码)
第一步,把所有PDF文件转成png图片格式import fitz
import os
def pdf2png(url):
name = []
path = []
i = 1
#在路径内搜索PDF文件,并加入列表,生成字典,键值对分别是文件名和文件路径
for lujing,liebiao,wenjian in os.walk(url):
for a in wenjian:
if a.endswith('pdf'):
patha = lujing +'\\' +a
path.append(patha)
name.append(a)
zidian = dict(zip(name,path))
#在字典内拿到文件名创建文件夹,然后转图片放到对应文件夹
for name,path in zidian.items():
lujing=path.replace('.pdf','')
if not os.path.exists(lujing):
os.mkdir(lujing)
#打开PDF文件,生成一个对象
doc = fitz.open(path)
print(path,f'一共{doc.pageCount}页')
for pg in range(doc.pageCount):
page = doc
rotate = int(0)
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高两倍的图像。
zoom_x = 2.0
zoom_y = 2.0
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
pm.writePNG(lujing +'\\'+ '{:02}.png'.format(i))
i = i+1
print(f'第{i-1}页转换完成')
i = 1
url = input('请输入文件夹地址:')
pdf2png(url)运行后,输入大文件夹的路径即可,会循环遍历每个文件夹,然后将每个文件夹内的PDF文件,转换成png图片,并保存到对应名字的文件夹。
第二步,把每个文件夹下的02.png图片删除,循环遍历每个文件夹,并拼接每个02.png的路径,然后循环路径,删除即可
import os
path = 'G:\多pdf裁切项目\级别5--图片\\'
nlst =
for i in nlst:
os.remove(i)
print(i,'已经删除')
第三步,把第一张和最后两张图片移动到目标文件夹,剩余图片固定区域填充白色
import numpy as np
import os,shutil
from PIL import Image
def tianchong(url):
#新建文件夹,用来存储处理完的图片
if not os.path.exists(url + '-填充后'):
os.mkdir(url + '-填充后')
# 把不需要处理的三张图片,移动到目标文件夹
files = os.listdir(url)
changdu = len(files)
shutil.move(f"{url}\\01.png", url + '-填充后')
shutil.move(f'{url}\\{int(changdu)}.png', url + '-填充后')
shutil.move(f'{url}\\{int(changdu)+ 1}.png', url + '-填充后')
# 把所有文件遍历出来
files =
# print(files)
for a in files:
newname = a.split('】')+'】-填充后'+'\\'+a.split('\\')[-1]
# 开始处理图片
img = Image.open(a)
array = np.array(img)
rows = len(array)
cols = len(array)
# 图片尺寸
# print(rows)
# print(cols)
# 设置图片修改后图片颜色作者这里设置为白色
colorl =
# 依次遍历我们需要修改颜色的图片区域
for col in range(100, 870):
for row in range(830, 1060):
array = colorl
new_img = Image.fromarray(array)
# new_img.show()
new_img.save(newname)
print(a, '已经处理完毕')
path = input('请输入文件夹地址:')
A = os.listdir(path)
for a in A:
tianchong(path+'\\'+a)
第四步,每个文件夹内的图片合成一个PDF文件
import os
import img2pdf
def pngtopdf(path):
name = path + '.pdf'
with open(name, "wb") as f:
f.write(img2pdf.convert())
url = input('请输入文件夹地址:')
A = os.listdir(url)
for i in A:
pngtopdf(url+'\\'+i)
print(url+'\\'+i,'已经合成完毕')
补充一点,图片转PDF这个,目前只支持png图片,如果图片是jpg格式的话,用如下代码把jpg转成png
from PIL import Image
import os
path = r'C:\Users\admin\Desktop\成品'
for lujing,liebiao,wenjian in os.walk(path):
for i in wenjian:
j = lujing+'\\'+i #获取所有文件的完整路径
name = i.split('.') #拿到每个文件的名字,去掉后缀名
im = Image.open(j) #打开图片
im.save(f"{lujing}\{name}.png") #保存到原目录,保存成png格式
print(j,'转换完成')
页:
[1]