python写文件格式转换程序_有趣的python小程序——图片格式转换
今日得闲,去上野的国立西洋美术馆逛了一圈。看到了印象派的好多名作,塞尚的《桥》,莫奈的《雪中的阿让特伊》、《睡莲》,毕沙罗的《收获》,马丁的《花与泉水》··。
拍了好多照片,想回来跟妹子分享一下。无奈mac版本微信一发raw格式图片就卡。AppStore搜了一圈格式转换软件都要花钱,于是一气之下,自己写了个格式转换的小程序,做了个tkinter的GUI,分分钟就转好了。
这个小程序长这样:
可以选择多个图片文件,自动识别源文件格式,然后可以在下拉菜单选择目标文件格式,支持nef,jpg,png,bmp,tiff,gif。等会代码放出来,大家有需要的可以自己改一改,添加需要的格式。然后选择输出的目标路径,点击开始转换,就可以转换了。底下的文本框会显示转换进度。(这个UI设计得可谓是相当简陋。不过随手写的,我也懒得弄多好看,好用就行。)
展示一下效果:
好了,少啰嗦,下面上代码。大家也可以在我的github上直接下载imageconverter.py:
import os
import re
from tkinter import *
from tkinter.filedialog import askdirectory,askopenfilenames
from tkinter import ttk
import rawpy
import imageio
def converter(img,targetdirect,i,num):
t.insert('end', '第' + str(i) + '/' + num + '件' + img + ' Converting \n')
print(img,targetdirect)
if os.path.exists(targetdirect)==True:
pass
else:
try:
raw=rawpy.imread(img)
raw_post = raw.postprocess()
except:
pass
else:
imageio.imsave(targetdirect, raw_post)
t.insert('end', '第' + str(i) + '/' + num + '件' + img + ' Finish \n')
# 主转换程序
def massconvert():
print(imgs, targetpath, targettype)
num = str(len(imgs))
i = 1
for img in imgs:
img_name = os.path.basename(img)
sourcetype=str(re.findall(r'\.[^.\\/:*?"<>|\r\n]+$', img_name)[0])
targetdirect = targetpath + '/' +re.sub(sourcetype,'.'+targettype,img_name)
converter(img, targetdirect,i,num)
i = i + 1
t.insert('end', '全部完成')
#GUI
def gotarget(*args): # 处理事件,*args表示可变参数
global targettype
targettype=targetformatlist.get()
print(targetformatlist.get())
def selectsourceimgs(): #获取源文件
global imgs
imgs=askopenfilenames()
e1.insert(0,imgs)
print(sourcepath)
def selecttargetPath(): #设定目标文件夹
global targetpath
targetpath = askdirectory()
e2.insert(0,targetpath)
print(targetpath)
window = Tk() #建立窗口
window.title('Image Converter') #标题
window.geometry('400x400') #大小
var2 = StringVar()
var3=StringVar()
var2.set(('NEF','jpg','png','tiff','bmp','GIF')) #为变量设置值
var3.set(('NEF','jpg','png','tiff','bmp','GIF')) #为变量设置值
#select source
Label(window,text = "源图片:").grid(row = 0, column = 1)
sourcepath=StringVar()
e1=Entry(window, textvariable = sourcepath)
e1.grid(row = 0, column = 2)
Button(window, text = "选择文件", command = selectsourceimgs).grid(row = 0, column = 3)
#select target directory
Label(window,text = "目标路径:").grid(row = 1, column = 1)
targetpath=StringVar()
e2=Entry(window, textvariable = targetpath)
e2.grid(row = 1, column = 2)
Button(window, text = "选择路径", command = selecttargetPath).grid(row = 1, column = 3)
#targetformatlist
Label(window,text = "目标图片类型:").grid(row = 3, column = 1)
targetformatlist = ttk.Combobox(window, textvariable=var3) # 初始化
targetformatlist.bind("<>", gotarget) # 绑定事件,(下拉列表框被选中时,绑定go()函数)
targetformatlist['values'] = ('NEF','jpg','png','tiff','bmp','GIF') # 设置下拉列表的值
#大家有需要的,可以在这里添加自己需要用的格式
targetformatlist.grid(column=2, row=3) # 设置其在界面中出现的位置 column代表列 row 代表行
targetformatlist.current(0) # 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值
#显示结果文本
t=Text(window,height=10,width=30,background = 'grey')
t.grid(row=6,column=2)
#开始转换按钮
Button(window, text = "开始转换", command = massconvert).grid(row = 3, column = 3)
#显示主窗口
window.mainloop()
好啦,谢谢大家的阅读。如果你喜欢我的文章,可以关注我的账号,后续还会有更多的更新。如果有什么建议,也欢迎在评论区留言,我会悉心听取。
python写文件格式转换程序_有趣的python小程序——图片格式转换相关推荐
- 如何用python写串口通信软件_如何用python写个串口通信的程序?
展开全部 打开串口后启动一个线程来监听串口数据的进入,有数据时,就做数据的处理. 用python写串口通信e68a84e8a2ad32313133353236313431303231363533313 ...
- python写一个接口_如何用python写接口
如何用python写接口?具体步骤如下: 1.实例化server 2.装饰器下面的函数变为一个接口 3.启动服务 开发工具和流程: python库:flask =>实例化server:serve ...
- python汇率的转换程序_如何实现python汇率转换代码
对于刚刚入门python的学习者们,最头疼的莫过于基础的功能实现代码了,很多函数可以实现意义是一样的,今天小编教大家实例--实现python汇率转换代码. Python中的货币转换器 tkinter ...
- 用python写一个圣诞互换礼物的抽奖小程序
目的 最近和朋友们想玩圣诞互换礼物,但是没找到可以抽奖的小程序,所以我决定自己写一个. 游戏规则:参加游戏的人需要随机抽取一个幸运儿送一个礼物,但是注意不要抽到自己,并且不要重复抽同一个人. 思路 准 ...
- python写文件格式转换程序_python实现txt文件格式转换为arff格式
本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体内容如下 将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的. 文件要求第一 ...
- 如何用python写数值运算_如何理解Python的数值运算?
1 基本算术运算 1.1 使用规则 – Python解析器相当于一个简单的计算器 – Python解析器可以接受简单的算术表达式 – 运算符可以使加(+)减(-)乘(*)除(/) 1.2 实操理解 # ...
- python写文字方法_初学Python-简单的在图片上加文字
场景 在用户运营中,拉新是第一步.我们产品打算先再小范围试验一下效果,不动用开发哥哥,自己制作邀请海报. 没错,就是最简单的,邀请领奖励活动. UI妹妹把海报模版做出来,邀请码根据用户ID自行填上. ...
- python写网页脚本_东拼西凑用python脚本登录web管理页面做巡检(实现)
东拼西凑用python脚本登录web管理页面做巡检(实现) 发布时间:2020-06-06 12:26:40 来源:51CTO 阅读:489 参考博文https://www.cnblogs.com/s ...
- 用python写注册登录_如何用python 写注册,登录功能的测试
2015-07-09 回答 有些网页需要你登录之后才可以访问,你需要提供账户和密码. 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解cookie的工作原理. ...
- python写扫雷脚本_如何让Python实现自动扫雷
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 文章目录 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式. ...
最新文章
- python答题系统的代码_Python考试系统自动答题(教务处)
- mysql8 允许外网访问
- linux实用的脚本:xcall(同步执行命令)与xsync(同步文件目录)
- 文件夹没有安全选项-文件上传下载-路径访问被拒绝
- Merge k Sorted Lists leetcode java
- 如何使用 WinUSB 与 USB 设备 (USBDevice) 通信
- 高通:预计未来几年向苹果公司出售的芯片将减少
- 移动端设备管理平台 atx server2实践
- linux系统添加任务栏蓝牙图标,深度系统中(deepin os)如何使用蓝牙适配器
- 2023南京工业大学计算机考研信息汇总
- 米家扫地机器人静音模式在哪_贵了300块的米家扫地机器人1S 还是那个性价比神器吗?...
- [转贴][教学] 教你如何打飞机 ^_^
- 3DsMax导出插件编写(二)——常规SDK方法进行信息获取和保存文件
- 在积分系统中可以设置哪些获取积分方式
- 苏宁易购首页仿写代码-仅供参考# 话不多说,直接上代码,苏宁易购手机app网站首页,仅供参考
- 微软原版系统安装Win7篇
- Jetson Nano控制SIM7020 开关机
- Teamviewer控制安卓手机远程打卡实现
- DDD:领域驱动设计
- qmail 相关问题
热门文章
- 计算机论文题目_基于java的毕业设计题目_50例
- oracle追踪语句,SQL Monitor(oracle语句追踪工具)
- 戴尔dell电脑恢复出厂设置教程(BIOS恢复出厂设置,新版台式机)
- 倒计时 分秒 小程序 方法_微信小程序 倒计时
- 相机模型与坐标转换!
- Window10 X64 安装TWinCat3
- python编程语言可以做游戏吗_用Python编程可以制作掷骰子游戏吗
- Android实战之淘宝领券(三)
- Julia(编程语言)
- ocx注册以及检测(转)