程序下载地址:链接:https://pan.baidu.com/s/1ser7iEMRS54syvwl1cck1Q?pwd=jr66
提取码:jr66
一、完整代码
如果想要测试代码,记得在使用前先保证已经安装了Python的PIL模块
import os
from tkinter import Tk, Button, messagebox
from PIL import Image
# 检查并创建文件夹
def check_and_create_folders():
if not os.path.exists('Old_Img'):
os.makedirs('Old_Img')
if not os.path.exists('New_Img'):
os.makedirs('New_Img')
# 清空New_Img文件夹
def clear_new_img_folder():
file_list = os.listdir('New_Img')
for file_name in file_list:
file_path = os.path.join('New_Img', file_name)
if os.path.isfile(file_path):
os.remove(file_path)
# 图片格式转换函数
def convert_images(image_format):
old_img_folder = 'Old_Img'
new_img_folder = 'New_Img'
# 获取Old_Img文件夹中的图片文件列表
file_list = os.listdir(old_img_folder)
for file_name in file_list:
file_path = os.path.join(old_img_folder, file_name)
if os.path.isfile(file_path):
# 打开图片
image = Image.open(file_path)
# 构建新的文件名
new_file_name = os.path.splitext(file_name)[0] + '.' + image_format
# 保存转换后的图片
new_file_path = os.path.join(new_img_folder, new_file_name)
image.save(new_file_path, format=image_format)
messagebox.showinfo("提示", "转换完成!")
# 创建主窗口
def create_main_window():
root = Tk()
root.title("请选择要转换的格式")
root.geometry('300x200')
# 清空New_Img文件夹并转换图片
def convert_btn_click(image_format):
clear_new_img_folder()
convert_images(image_format)
# 创建按钮并绑定事件
btn_formats = ['jpg', 'png', 'gif']
for i, format in enumerate(btn_formats):
btn = Button(root, text=format, command=lambda f=format: convert_btn_click(f))
btn.place(x=20 + 100 * i, y=80)
root.mainloop()
# 主程序入口
if __name__ == '__main__':
check_and_create_folders()
create_main_window()
二、使用教程
步骤 1:准备图片文件:将你要转换的图片文件复制或剪切到程序所在目录下的"Old_Img"文件夹中。请确保只包含图片文件在该文件夹中,其他文件将被忽略。
步骤 2:运行程序:此时程序会自动创建一个名为“New_Img”的文件用于存储转换后的图片
步骤 3:选择要转换的图片格式:程序运行后,会弹出一个窗口,窗口标题为"请选择要转换的格式"。窗口内显示了几个按钮,分别对应常见的图片格式(jpg、png和gif)。
步骤 4:转换图片格式:点击相应的按钮,即可开始将"Old_Img"文件夹中的图片转换为所选格式。在转换过程中,程序会清空"New_Img"文件夹,并将转换后的图片保存到"New_Img"文件夹中。
步骤 5:查看转换结果:转换完成后,程序会弹出一个提示框,提示用户转换完成。你可以打开"New_Img"文件夹,查看转换后的图片文件。
注意事项:
- 请确保"Old_Img"文件夹中只包含你想要转换的图片文件,其他文件将被忽略。
- 请注意转换后的图片文件可能会覆盖同名的文件,因此在转换之前建议备份原始图片。
- 该程序目前只支持常见的图片格式转换,如需转换其他格式,请对代码进行相应修改。
三、实现思路
这段代码实现了一个简单的图片格式转换程序,使用了tkinter
库创建了一个图形界面窗口,让用户可以选择要将图片转换成的格式。
-
check_and_create_folders()
函数用于检查并创建名为"Old_Img"和"New_Img"的文件夹。如果这两个文件夹不存在,就使用os.makedirs()
函数创建它们。 -
clear_new_img_folder()
函数用于清空"New_Img"文件夹。它遍历"New_Img"文件夹中的文件列表,并使用os.remove()
函数删除每个文件。 -
convert_images(image_format)
函数用于将"Old_Img"文件夹中的图片转换为指定格式。它首先获取"Old_Img"文件夹中的图片文件列表,然后对每个文件进行以下操作:- 打开图片文件并创建一个
Image
对象。 - 根据指定的格式构建新的文件名。
- 使用
image.save()
方法将转换后的图片保存到"New_Img"文件夹中,指定保存格式为指定的格式。
- 打开图片文件并创建一个
-
create_main_window()
函数用于创建主窗口。它使用Tk()
函数创建一个名为root
的窗口对象,并设置窗口的标题为"请选择要转换的格式",大小为300x200像素。 -
convert_btn_click(image_format)
函数是按钮点击事件的处理函数。当用户点击某个按钮时,该函数会被调用。它首先调用clear_new_img_folder()
函数清空"New_Img"文件夹,然后调用convert_images(image_format)
函数将"Old_Img"文件夹中的图片转换为指定格式。 -
在
create_main_window()
函数中,使用Button()
函数创建了三个按钮,分别对应三种常见的图片格式("jpg"、"png"和"gif")。每个按钮的文本使用对应的格式名,点击按钮时会调用convert_btn_click()
函数并传递对应的格式名作为参数。 -
最后,在主程序入口
if __name__ == '__main__':
中,首先调用check_and_create_folders()
函数创建文件夹,然后调用create_main_window()
函数创建主窗口。