@TOC
本文介绍一个用python第三方库pillow写的批量处理图片格式转换的脚本,以及脚本对应的使用tkinter库写的GUI界面并把它打包成exe可执行文件,打包成可执行文件的好处就是它支持多种操作系统,如 Windows、Linux 和 Mac OS 等。不了解pillow库和tkinter库的可以看我之前的文章,具体在下面的导航区域。
from PIL import Image # 图片处理库
import os # 文件管理库
# 批量图片格式转换函数
"""
参数:
input_path: 输入文件夹路径
output_path: 输出文件夹路径
format: 文件格式/后缀
"""
def convert_images(input_path, output_path, format):
# 判断输出文件夹是否存在,不存在则创建
if not os.path.exists(output_path):
os.makedirs(output_path)
# 遍历输入文件夹
for file in os.listdir(input_path):
# 判断文件是否为图片
if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.jpeg') or file.endswith('.bmp'):
img = Image.open(os.path.join(input_path, file))
# 转换图片格式
img.save(os.path.join(output_path, file.split('.')[0] + '.' + format))
print(f'{file}-->{file.split(".")[0] + "." + format} 转换完成')
input_path = '../iamges'
output_path = 'output'
format = 'jpg'
convert_images(input_path, output_path, format)
from PIL import Image # 图片处理库
import os # 文件管理库
import tkinter as tk # GUI库
from tkinter import filedialog, messagebox # filedialog 用于选择文件夹,messagebox 用于提示信息
# 批量图片格式转换函数
"""
参数:
input_path: 输入文件夹路径
output_path: 输出文件夹路径
format: 格式
"""
def convert_images(input_path, output_path, format):
# 判断输出文件夹是否存在,不存在则创建
if not os.path.exists(output_path):
os.makedirs(output_path)
# 遍历输入文件夹
for file in os.listdir(input_path):
# 判断文件是否为图片
if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.jpeg') or file.endswith('.bmp'):
img = Image.open(os.path.join(input_path, file))
# 转换图片格式
img.save(os.path.join(output_path, file.split('.')[0] + '.' + format))
print(f'{file}-->{file.split(".")[0] + "." + format} 转换完成')
input_path = '../iamges'
output_path = 'output'
format = 'jpg'
convert_images(input_path, output_path, format)
#GUI界面
def convert_images_gui():
# 获取输入,输出路径和格式
format = entry_format.get()
input_path = entry_input.get()
output_path = entry_output.get()
# 调用批量图片格式转换函数
convert_images(input_path, output_path, format)
# 显示提示信息
messagebox.showinfo('提示', '转换完成')
# 界面设计
root = tk.Tk()
# 设置窗口标题
root.title('批量图片格式转换')
# 设置窗口大小
root.geometry('400x400')
# 设置标签
label_input = tk.Label(root, text='输入文件夹路径:')
# 放置标签,并设置位置,第而行第五列(索引从0开始),padx和pady分别为左右边距和上下边距
label_input.grid(column=4, row=1, padx=10, pady=10)
# 设置输入框
entry_input = tk.Entry(root)
# 放置输入框
entry_input.grid(column=5, row=1, padx=10, pady=10)
# 设置按钮,点击按钮弹出文件选择对话框,并将选择的文件路径插入输入框,command参数为一个匿名函数,用于在点击按钮时执行
tk.Button(root, text="浏览",
command=lambda: entry_input.delete(0, tk.END) or entry_input.insert(0, filedialog.askdirectory())).grid(column=6, row=1)
# 设置标签
label_output = tk.Label(root, text='输出文件夹路径:')
# 放置标签,并设置位置
label_output.grid(column=4, row=2, padx=10, pady=10)
# 设置输入框
entry_output = tk.Entry(root)
# 放置输入框,并设置位置
entry_output.grid(column=5, row=2, padx=10, pady=10)
# 设置按钮,点击按钮弹出文件选择对话框,并将选择的文件路径插入输入框,command参数为一个匿名函数,用于在点击按钮时执行
tk.Button(root, text="浏览",
command=lambda: entry_output.delete(0, tk.END) or entry_output.insert(0, filedialog.askdirectory())).grid(column=6, row=2)
# 设置标签
label_format = tk.Label(root, text='格式:')
# 放置标签,并设置位置
label_format.grid(column=4, row=3, pady=10, padx=10)
# 设置输入框
entry_format = tk.Entry(root)
# 放置输入框,并设置位置
entry_format.grid(column=5, row=3, padx=10, pady=10)
# 设置按钮,点击按钮调用批量图片格式转换gui函数
button_convert = tk.Button(root, text='运行', command=convert_images_gui)
# 放置按钮,并设置位置
button_convert.grid(column=5, row=4, columnspan=2,padx=40, pady=10,sticky='ew' )
# 启动GUI
root.mainloop()
加了个图片背景图,个人感觉比原来单调的颜色好多了。
需要安装python第三方库pyinstaller
pip install pyinstaller
在文件所在目录的终端输入下面的命令,就可以把把刚刚的GUI界面打包成一个.exe可执行文件。
pyinsataller filename
filename是要打包的源文件的名称
比如我要打包我写的图片批量命名的脚本打包成.exe可执行文件,可以在终端使用下面的命令:
pyinstaller imageScript2.py
努力工作是为了更好的生活!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。