1. python将pdf反色
分为以下三步:
- 将pdf拆分为图片
- 将图片以此反色
- 将反色图片重新合成pdf,覆盖原始文件
import cv2
from PIL import Image
import os
def combine2Pdf( folderPath, pdfFilePath ):
files = os.listdir( folderPath )
pngFiles = []
sources = []
for file in files:
if 'png' in file or 'jpg' in file:
pngFiles.append( folderPath + file )
pngFiles.sort()
output = Image.open( pngFiles[0] )
pngFiles.pop( 0 )
for file in pngFiles:
pngFile = Image.open( file )
if pngFile.mode == "RGB":
pngFile = pngFile.convert( "RGB" )
sources.append( pngFile )
output.save( pdfFilePath, "pdf", save_all=True, append_images=sources )
from pdf2image import convert_from_path
dir_ = 'data/reverse/'
output = dir_ + 'output/'
pdf = 'Animenz - Grand Escape.pdf'
for file in os.listdir(output):
os.remove(output + file)
# 转换为图片并保存
pages = convert_from_path(dir_ + pdf, 500)
index=0
for page in pages:
index+=1
page.save(output + str(index) + '.jpg', 'JPEG')
# 反色
outputs=os.listdir(output)
for file in outputs:
print(file)
src=cv2.imread(output + file,1)
print(src.shape)
Img=255-src
print(Img.shape)
cv2.imwrite(output + file + '.jpg', Img)
os.remove(output + file)
# 合成pdf
combine2Pdf(output, dir_ + pdf)
2. python将图片转为gif
from moviepy.editor import ImageSequenceClip
import os
img_names = []
directory = 'data/pic'
print(os.listdir(directory))
for t in os.listdir(directory):
if t.endswith('.png') or t.endswith('.jpg'):
pre, _ = t.split('.')
img_names.append(int(pre))
img_names.sort()
names=[]
for t in img_names:
names.append(directory + "/%s.png" % t)
print(img_names)
clip = ImageSequenceClip(names, fps=1)
clip.write_gif('data/demo.gif')
评论区