图片格式转换 png,jpg,gif等格式 的python可视化程序

一:前提

python实现图片的各种格式转换,支持较多格式(png、jpg、gif、bmp、im、pcx、ppm)的可视化界面

二:代码

直接上代码!

import os
from PIL import Image
import shutil
import sys
import PySimpleGUI as sg
import tkinter as tk
from tkinter import filedialogdef image2png(dataset_dir,type):files = []image_list = os.listdir(dataset_dir)files = [os.path.join(dataset_dir, _) for _ in image_list]for index,jpg in enumerate(files):if index > 100000:breaktry:sys.stdout.write('\r>>Converting image %d/100000 ' % (index))sys.stdout.flush()im = Image.open(jpg)png = os.path.splitext(jpg)[0] + "." + typeim.save(png)# 将已经转换的图片移动到指定位置'''if jpg.split('.')[-1] == 'jpg':shutil.move(png,output_dirLR)else:shutil.move(png,output_dirHR)'''shutil.move(png, dataset_dir)except IOError as e:print('could not read:',jpg)print('error:',e)print('skip it\n')sys.stdout.write('Convert Over!\n')sys.stdout.flush()def transforSeparateFile(dataset_dir,type):try:im = Image.open(dataset_dir)Targetim = os.path.splitext(dataset_dir)[0] + "." + typeim.save(Targetim)except IOError as e:print('could not read:',dataset_dir)print('error:',e)print('skip it\n')print("Converting "+dataset_dir+"  成功的转为"+type+"格式")def getLocalFile():#选择并获取本地文件路径root=tk.Tk()root.withdraw()filePath=filedialog.askopenfilename().replace('/','\\')return filePathdef getLocalFolder(values):#选择并获取本地目录root=tk.Tk()root.withdraw()FolderPath=filedialog.askdirectory().replace('/','\\')return FolderPathdef startTransfor(values):Location=values['keyMainWindowPlaintextTagretToBeTransfor']type=values['keyMainWindowTargetFormat']if os.path.splitext(Location)[1] == "":# 选择的是文件夹image2png(os.path.splitext(Location)[0],type)else:# 选择的是单一的图片transforSeparateFile(Location,type)def main():try:# 创建 mainWindow 布局# simpleGui.theme('DarkGreen6')column1 = [[sg.Text('                                                                                  1',background_color='#CCCCCC',text_color='#000000')],[sg.Button('   选择转换的图片文件   ', key='keyMainWindowFileChoose',button_color='#CD5C5C')],[sg.Button('选择转换的图片文件目录', key='keyMainWindowFolderChoose',button_color='#CD5C5C'),sg.Text('< =整个文件内的图片都会生成其对选择类型的图片,若已存在目标同名的文件会被覆盖')],]column2 = [[sg.Text('                                                                                  2',background_color='#CCCCCC',text_color='#000000')],[sg.Text('              选择的图片文件或者目录如下                   ',background_color='#696969')],[sg.Input(key='keyMainWindowPlaintextTagretToBeTransfor', size=(90, 1))],[sg.Text('                                                      ',background_color='#CCCCCC')],]column3 = [[sg.Text('                                                                                  3',background_color='#CCCCCC',text_color='#000000')],[sg.Text('                         选择目标格式                              ',background_color='#696969')],[sg.InputCombo(['png', 'jpg','gif','bmp','im','pcx','ppm'],key='keyMainWindowTargetFormat',size=(50, 3))],[sg.Text('                                                                                   ',background_color='#CCCCCC',text_color='#000000')],[sg.Text('                                                                                   ',background_color='#CCCCCC',text_color='#000000')],[sg.Text('                                                                                   ',background_color='#CCCCCC',text_color='#000000')],[sg.Button('       开始转换       ', key='keyMainWindowTransforStart',button_color='#4682B4')],]mainWindowLayout = [[sg.Text('                                                                           ')],[sg.Column(column1, background_color='#CCCCCC',size=(700,120),)],[sg.Text('                                                                           ')],[sg.Column(column2, background_color='#CCCCCC',size=(700,110),)],[sg.Text('                                                                           ')],[sg.Column(column3, background_color='#CCCCCC',size=(700,200),)],]# 创建窗口,引入布局,并进行初始化。mainWindow = sg.Window('图片格式转换', layout=mainWindowLayout, finalize=True)# 创建一个事件循环,否则窗口运行一次就会被关闭。while True:window, event, values = sg.read_all_windows()print("点击了主窗口")# print(window, event, values)  # 可以打印一下着看变量的内容if window == mainWindow:if event in (sg.WIN_CLOSED,  'keyMainWindowOk', 'keyMainWindowCancel'):breakelif event == 'keyMainWindowFileChoose':filePath = getLocalFile();mainWindow['keyMainWindowPlaintextTagretToBeTransfor'].update(filePath)elif event == 'keyMainWindowFolderChoose':folderPath = getLocalFolder(values);mainWindow['keyMainWindowPlaintextTagretToBeTransfor'].update(folderPath)elif event == 'keyMainWindowTransforStart':Location=values['keyMainWindowTargetFormat']print(Location)startTransfor(values)# 关闭窗口mainWindow.close()except Exception as result:print("函数 main 捕捉到异常:%s" % result)if __name__ == "__main__":current_dir = os.getcwd()print(current_dir)main()

最后的运行效果如下(比较简陋)

图片格式转换 png,jpg,gif等格式 的python小程序相关推荐

  1. C#调用大华相机SDK获取图片,转换成VisionPro的Icogimage格式

    文章讲的是C#调用大华相机SDK,通过回调事件获取图片并转换成visionpro的Icogimage格式,文章底部会分享例程.在调用SDK之前,需要先安装大华的相机软件到C盘,不安装到C盘会显示依赖项 ...

  2. mkv格式怎么解封?教你用格式转换的方法把mkv格式转换成avi

    mkv格式作为主流格式之一,虽然没有以前那么流行了,但是在下载视频作为素材的时候难免还会遇到mkv格式.而mkv格式是一种封装格式,很多播放器或pr等一些编辑软件是不能直接添加mkv格式的,因此我们常 ...

  3. python降低图片分辨率_手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定!...

    原标题:手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定! 大数据文摘作品 编译:HAPPEN.于乐源.小鱼 一位乐于分享学生精彩笔记的大学教授对于扫描版的文件非常不满意--颜色不清晰并且 ...

  4. c语言编程微信公众号图片直播,如何以图片的形式在微信公众号文章中添加小程序...

    如何以图片的形式在微信公众号文章中添加小程序 微信公众号中想要将自己的小程序也放进去,宣传宣传,该怎么添加?下面百分网小编带大家一起来看看详细操作教程,感兴趣的朋友一起学习吧!!!想了解更多相关信息请 ...

  5. html图片如何转换成word文档格式,怎么将Word文档里的图片格式改成文字格式?

    回答: 使用Word编辑文档的时候,不仅可以保存成Word格式,也可以保存为其它格式.但有的时候需要将大批的已经编辑完成的Word文档转换成文本格式或其他格式文档,怎么办?如果通过"另存为& ...

  6. yolo图像检测数据集格式转换:xml 与 txt格式相互转换

    格式介绍 一图流介绍的比较详细,一般图像检测数据集格式为txt或者xml格式,在使用labelimg进行标注的时候,可以设置获得不同格式的数据集,以满足不同算法训练格式要求: 一般建议使用pascal ...

  7. java aud 转mp3_音频格式转换:微信语音aud格式转成wav格式

    近期遇到音频格式问题,下面就来记录一下,我暂时还没有找到直接从音频格式aud转换成wav的工具或者代码,所以我这里的转换是先把aud转换成mp3格式,然后再从mp3格式转换成aud格式.我是在linu ...

  8. 计算机无法播放qsv文件,怎么把电脑上的qsv格式转换成常用的mp4格式

    第一步:首先就是要打开能转换的视频转换器,并把首行功能栏中的功能选为视频转换功能,虽然默认的也是视频转换功能,但容易因为各种情况选择别的功能而忘记. 第二步:随后要做的就是根据多种添加方式选择其中一种 ...

  9. m4s格式转换mp3_闪电MP4/MP3格式转换器下载-闪电MP4/MP3格式转换器v3.8.8免费版

    闪电MP4/MP3格式转换器是一个功能强大的MP3/MP4视频转换软件,使用这款闪电MP3/mp4格式转换器可以实现MP3,WAV,CD,WMA,OGG,AAC,AC3,FLAC,APE等常用音频见的 ...

  10. html5录音mp3格式转换,如何录音成mp3格式_电脑录音转化为mp3格式教程-系统城

    我们在使用电脑的时候,有时候需要用到录音的功能,而特殊情况下我们可能会用到mp3的格式.那么电脑该如何录音成mp3格式呢?电脑录制成mp3格式的方法有2种,小编在这里就给大家带来电脑录音转化为mp3格 ...

最新文章

  1. UML 建模大佬养成记(Java版)
  2. android自定义滑块解锁,android 滑动解锁
  3. 详解const和#define
  4. kubernetes目录挂载
  5. CF1396B Stoned Game(博弈论)
  6. java电脑运行视频演示_javaweb视频第一天(二)
  7. 面向对象封装之无参无返,无参有返
  8. vue.js更改颜色_如何使用Vue.js实现简单的标题更改应用程序
  9. css设置打印样式表,[CSS] 创建打印样式表
  10. 模板方法(Template)模式
  11. SQLi LABS Less-29
  12. 让代码看起来更舒服(1):选择适合的配色方案 (转)
  13. 按功能说明计算机中有哪些类型的寄存器?
  14. 学习笔记——Servlet原理
  15. 红米6pro刷Android原生,红米6 Pro 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  16. 求出数组最大值的方法
  17. php7 slowlog,php7: php-fpm seems busy提示
  18. 创:战纪 的严重剧透
  19. 2022高压电工考试练习题及模拟考试
  20. 【个人研究】21世纪西方运用脑电(EEG)的音乐研究动向分析(二)

热门文章

  1. 中华石杉-- --分布式服务框架Dubbo的笔记
  2. 计算机网络规范化发生在,关于计算机网络系统工程设计工作规范化的几点建议.pdf...
  3. 常用的webservice接口(转)
  4. 用clustalx打序列文件(.fa)失败是为什么?
  5. 【图文】分享一下我已实践可行的paypal提现方法!
  6. AI CC2019安装
  7. 英语语法回顾2——并列句
  8. G.652与G.655单模光纤分类及对比
  9. Ignite 安装启动(本地单机)
  10. 固态硬盘计算机怎么自定义分区,固态硬盘分区,详细教您固态硬盘怎么分区