#!/Anaconda3/envs python38
# -*- coding:utf-8 -*-
'''
@Project: autoOffice
@Author: SiriBen
@Time: 2022/10/8 20:28
@File: imageFomatConversion.py
@Description: 图片格式转换
'''
import os
import subprocess
from subprocess import CalledProcessError
#获取所有后缀为HEIC的图片文件
def get_File_HEIC(dir_path):
files = os.listdir(dir_path)
fileNameList = []
for i in files:
if os.path.splitext(i)[1].upper() == '.HEIC'.upper():
fileName_ = ''.join(os.path.splitext(i))
fileNameList.append(fileName_)
print(fileNameList)
return fileNameList
#重组文件绝对路径,读书文件流
def read_image_file_rb(dir_path, fileNameList):
fileNameList_ = []
for i in fileNameList:
#重组文件绝对路径
file_name_path = dir_path + '\\' + i
fileNameList_.append(file_name_path)
print(fileNameList_)
return fileNameList_
#转换格式
'''
file_list:文件列表
fomatFile:待转换格式
toFile:目标格式后缀
fomatName:标准格式名称
'''
def heic_to_jpg(dir_path, file_list, formatFile, toFile):
#用于保存转换成功和失败的文件
successList = []
failList = []
for f in file_list:
str2_ = f.replace('\\', '/')
str_ = (dir_path.replace('\\', '/') + '/' + os.path.basename(f).split('.')[0] + '.' + toFile)
print(str2_)
print(str_)
cmd = ''
cmd += 'magick'
cmd += ' ' + str2_
cmd += ' ' + str_
print(cmd)
try:
cp = subprocess.run(cmd)
#根据返回值判断为0确定转换是否成功
if 'returncode=0' in str(cp):
print(str2_ + '转换成功')
successList.append(str2_)
else:
print(str2_ + '转换失败')
failList.append(str2_)
# subprocess.run(cmd, shell=True, check=True, capture_output=True, encoding='gbk')
# subprocess.run(cmd2.format(str2_, str_), shell=True, check=True, capture_output=True, encoding='gbk')
except CalledProcessError as e:
print(e)
print('[*]转换成功的文件{}个:{}'.format(len(successList), str(successList)))
print('[*]转换失败的文件{}个:{}'.format(len(failList), str(failList)))
if __name__=="__main__":
dir_path = r'F:/MyFiles/Photo'
print(dir_path)
#获取所有后缀为HEIC的图片文件
HEICImage_List = get_File_HEIC(dir_path)
fileNameList = read_image_file_rb(dir_path, HEICImage_List)
heic_to_jpg(dir_path, fileNameList, 'HEIC', 'JPG')
SiriBen
- 粉丝: 2
- 资源: 6
最新资源
- 广工操作系统keshe
- (8110644)CIA讲义\CIA讲义\II\A实施内部审计业务.doc
- 面向多设备、支持多语言的统一编程平台 OpenArkCompiler四个技术特点能够将不同语言代码编译成一套可执行文件,在运行环境中高效执行:支持多语言联合优化、消除跨语言调用开销;更轻量的语言运行时
- (174705420)基于stm32 的简单的智慧农业系统, 有上位机,有下位机
- (172712814)计算器设计1
- (1824456)java课程设计之计算器
- (1866400)java编的计算器程序
- (175213200)创维E900V22E-S905L卡刷固件root语音正常
- student.sql
- 手机电池4面贴标机(sw14可编辑+工程图)全套技术资料100%好用.zip
- (175206212)创维E900V21E-S905L卡刷固件root语音正常
- (3961620)最新C#,sharp,winform记事本
- 手机锂电池正压测漏机(sw17可编辑+工程图+BOM)全套技术资料100%好用.zip
- (10745218)宿舍管理系统源码20130329
- 【锂电池剩余寿命预测】CNN-LSTM锂电池剩余寿命预测,马里兰大学锂电池数据集(Pytorch完整源码和数据)
- (178244442)springboot + vue3 房屋租赁系统源码+数据库.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0