convert #1

Open
opened 2023-08-29 00:02:21 +08:00 by wxchen · 0 comments
Owner

import os
from PIL import Image
import tkinter as tk
from tkinter import messagebox

def convert_to_8bit(input_file, output_file):
# 打开图像
image = Image.open(input_file)

# 将图像转换为8位
image = image.convert("P", palette=Image.ADAPTIVE, colors=256)

# 保存图像
image.save(output_file)

def process_images():
# 获取当前文件夹路径
folder_path = os.getcwd()
count = 0 # 统计转换的图片数量

# 支持的图像文件扩展名
supported_extensions = [".bmp", ".png", ".jpg", ".jpeg", ".tif"]

# 遍历文件夹下的文件
for filename in os.listdir(folder_path):
    # 获取文件扩展名,并转换为小写
    file_extension = os.path.splitext(filename)[1].lower()

    # 检查文件扩展名是否为支持的格式
    if file_extension in supported_extensions:
        # 构建输入和输出文件的完整路径
        input_file = os.path.join(folder_path, filename)
        output_file = os.path.join(folder_path, f"8bit_{filename}")

        # 转换为8位并保存图像
        convert_to_8bit(input_file, output_file)
        count += 1

return count

def close_app():
root.destroy() # 销毁窗口
root.quit() # 退出应用程序

if name == "main":
# 执行图像转换并获取转换的图片数量
converted_count = process_images()

# 创建弹窗窗口并显示转换完成的信息
root = tk.Tk()
root.withdraw()  # 隐藏主窗口

messagebox.showinfo("转换完成", f"{converted_count}张图像已转换完成")

# 注册关闭窗口时的回调函数
root.protocol("WM_DELETE_WINDOW", close_app)

root.mainloop()
import os from PIL import Image import tkinter as tk from tkinter import messagebox def convert_to_8bit(input_file, output_file): # 打开图像 image = Image.open(input_file) # 将图像转换为8位 image = image.convert("P", palette=Image.ADAPTIVE, colors=256) # 保存图像 image.save(output_file) def process_images(): # 获取当前文件夹路径 folder_path = os.getcwd() count = 0 # 统计转换的图片数量 # 支持的图像文件扩展名 supported_extensions = [".bmp", ".png", ".jpg", ".jpeg", ".tif"] # 遍历文件夹下的文件 for filename in os.listdir(folder_path): # 获取文件扩展名,并转换为小写 file_extension = os.path.splitext(filename)[1].lower() # 检查文件扩展名是否为支持的格式 if file_extension in supported_extensions: # 构建输入和输出文件的完整路径 input_file = os.path.join(folder_path, filename) output_file = os.path.join(folder_path, f"8bit_{filename}") # 转换为8位并保存图像 convert_to_8bit(input_file, output_file) count += 1 return count def close_app(): root.destroy() # 销毁窗口 root.quit() # 退出应用程序 if __name__ == "__main__": # 执行图像转换并获取转换的图片数量 converted_count = process_images() # 创建弹窗窗口并显示转换完成的信息 root = tk.Tk() root.withdraw() # 隐藏主窗口 messagebox.showinfo("转换完成", f"{converted_count}张图像已转换完成") # 注册关闭窗口时的回调函数 root.protocol("WM_DELETE_WINDOW", close_app) root.mainloop()
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wxchen/temp#1
No description provided.