Python-图片格式转化(jip,png,jieg转化为PDF,PDF转jip,png,jieg)

首先是导入需要使用的库:

from PIL import Image
import os
import fitz

1、将jip,png,jieg的图片,转化为PDF格式:

'''jip,png,jieg转化为PDF'''
def rea(path):                          #传递文件夹路径
    file_list = os.listdir(path)        #打开文件夹下的所有文件
    print(file_list)
    if file_list == []:
        return False
    pic_name = []
    
    for x in file_list:
        if "jpg" in x or 'png' in x or 'jpeg' in x:
            pic_name.append(x)           #将符合文件名的文件放入该列表中
    
    print("即将要转化的列表:",pic_name)
    pic_name.sort()                       #进行顺序排序

    number_picture = len(pic_name)        #计算转化图片的个数
    print(str(number_picture)) 
    
    im_list = []
    for x in range(0,number_picture):
        img1 = Image.open(os.path.join(path, pic_name[x])) #打开图片
        img = Image.open(os.path.join(path, pic_name[x]))  #打开图片
        #读取图像模式
        if img.mode == "RGBA":
            '''
            convert方法:转化图像模式
            mode:指的是要转换成的图像模式;
            params:其他可选参数。
            '''                 
            img = img.convert('RGB')
            im_list.append(img)
        elif img.mode == 'RGB':
            im_list.append(img)
    
        print(im_list)
        pdf_name = "{}.pdf".format(pic_name[x].split(".")[0])
        img1.save(pdf_name, "PDF", resolution=100.0, save_all=True, append_images=im_list)
        print("输出文件名称:", pdf_name)

2、将PDF转化为图片格式:(其中路径选择,自行更改)

def pdf_png():
    rotate = int(0)
    zoom_x = 1.0
    zoom_y = 1.0
    trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
    
    open_file_path = r'D:\Python_studyltem\图片格式转化\微信图片_20210604150902.pdf'
    save_file_path = r'D:\Python_studyltem\图片格式转化'

    pdf = fitz.open(open_file_path )
    #遍历PDF的张数:pdf.pageCount 识别PDF的张数
    for i in range(pdf.pageCount):
        pm = pdf[i].getPixmap(matrix=trans, alpha=False)
        pm.writePNG(save_file_path + '/第%s张%s.png' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.jpg' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.jpeg' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.tif' % (i,i))

3、总代码如下:

from PIL import Image
import os
import fitz

'''
将png,jpg,png的图片 
'''

'''jip,png,jieg转化为PDF'''
def rea(path):                          #传递文件夹路径
    file_list = os.listdir(path)        #打开文件夹下的所有文件
    print(file_list)
    if file_list == []:
        return False
    pic_name = [] 
    
    for x in file_list:
        if "jpg" in x or 'png' in x or 'jpeg' in x:
            pic_name.append(x)           #将符合文件名的文件放入该列表中
    
    print("即将要转化的列表:",pic_name)
    pic_name.sort()                       #进行顺序排序

    number_picture = len(pic_name)        #计算转化图片的个数
    print(str(number_picture)) 
    
    im_list = []
    for x in range(0,number_picture):
        img1 = Image.open(os.path.join(path, pic_name[x])) #打开图片
        img = Image.open(os.path.join(path, pic_name[x]))  #打开图片
        #读取图像模式
        if img.mode == "RGBA":
            '''
            convert方法:转化图像模式
            mode:指的是要转换成的图像模式;
            params:其他可选参数。
            '''                 
            img = img.convert('RGB')
            im_list.append(img)
        elif img.mode == 'RGB':
            im_list.append(img)
    
        print(im_list)
        pdf_name = "{}.pdf".format(pic_name[x].split(".")[0])
        img1.save(pdf_name, "PDF", resolution=100.0, save_all=True, append_images=im_list)
        print("输出文件名称:", pdf_name)
 
def pdf_png():
    rotate = int(0)
    zoom_x = 1.0
    zoom_y = 1.0
    trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
    
    open_file_path = r'D:\Python_studyltem\图片格式转化\微信图片_20210604150902.pdf'
    save_file_path = r'D:\Python_studyltem\图片格式转化'

    pdf = fitz.open(open_file_path )
    #遍历PDF的张数:pdf.pageCount 识别PDF的张数
    for i in range(pdf.pageCount):
        pm = pdf[i].getPixmap(matrix=trans, alpha=False)
        pm.writePNG(save_file_path + '/第%s张%s.png' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.jpg' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.jpeg' % (i,i))
        pm.writePNG(save_file_path + '/第%s张%s.tif' % (i,i))

if __name__ == '__main__':
    mypath= "D:\\Python_studyltem\\图片格式转化\\img"    #获取文件夹下的文件
    rea(mypath)
    pdf_png()
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山中坐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值