图像格式转换工具TIF转JPG,PNG

  • 目前只用于实现.tif格式图像转 .jpg 和 .png ;

  • 源文件夹 tif_files 用于放置 .tif 格式的图像;jpg_files , png_files 用于放置目标图像;

  • 转换前将目标文件夹清空;

  • 转换后,在界面显示信息:成功转换的图像;保证源文件夹内有.tif格式的文件;打印转换过程中可能会出现的程序错误信息;

  • 该程序会在完成所有转换之后,才在界面打印转换结果的信息!

"""
@file: GUI.py
@brief: Image Transforms

@copyright: © 2024 Jarine. All rights reserved.
"""
import PySimpleGUI as sg
from PIL import Image
import os

##################     GUI Setting     ################
layout = [[]]
layout.append([sg.Text(" "*130)])
layout.append([sg.Text("选择您想进行的转换类型:",font = (20)),
               sg.Combo(values=("tif - jpg","tif - png"),default_value="tif - jpg",readonly=True,font = (20),k="-COMBO-"),    #k参数即key,它表示当前控件Combo目前的值;是该窗口元素的身份
               sg.Text(" "*20),
               sg.Button("确认转换",button_color="pink")
               ])

layout.append([sg.Text(" "*130)])
layout.append([sg.Text("> 请在对应的文件夹内放入所需转换的.tif文件!",font = (20),text_color="yellow")])
layout.append([sg.Text(" "*130)])

layout.append([sg.Text("转换结果:", font=(20)), sg.Text("", key="-trn_bef-", font=(30), text_color="yellow"),
               sg.Text(" " * 120)
               ])
layout.append(
    [
     sg.Multiline(key='-trn_aft_text-', font=('宋体', 15), size=(80, 20), autoscroll=True)])

window = sg.Window('图像格式转换工具',layout)

######################################################
def clear_folder(folder_path):              #用于清空目标文件夹的函数
    files = os.listdir(folder_path)
    for file_name in files:
        file_path = os.path.join(folder_path,file_name)
        os.remove(file_path)

def batch_tif_to_trg(src_folder, trg_folder):
        # 如果目标文件夹不存在,则创建
        if not os.path.exists(trg_folder):
            os.makedirs(trg_folder)
        else:
            clear_folder(trg_folder)

        # 获取所有TIF文件的路径
        if src_folder == "tif_files":
            tif_files = [f for f in os.listdir(src_folder) if f.endswith('.tif') or f.endswith('.tiff') ]

        str1,str2,str3,str4,res1,res2,res3,res4 = "",'','','','','','',''

        # 遍历每个TIF文件,并转换为JPG
        for tif_file in tif_files:
            try:
                tif_path = os.path.join(src_folder, tif_file)
                if trg_folder == "jpg_files":
                    jpg_path = os.path.join(trg_folder, os.path.splitext(tif_file)[0] + '.jpg')
                    with Image.open(tif_path) as img:
                        img.convert('RGB').save(jpg_path)
                elif trg_folder == "png_files":
                    png_path = os.path.join(trg_folder, os.path.splitext(tif_file)[0] + '.png')
                    with Image.open(tif_path) as img:
                        img.convert('RGB').save(png_path)

                str1 = "转换 "+ str(tif_file) + "成功!" + '\n'
                res1 = res1 + str1
            except Exception as e:
                str2 = "转换失败:" + str({e}) + '\n'
                res2 = res2 + str2

        if src_folder == "tif_files" and tif_files == []:
            str3 = "tif_files路径下没有tif格式的文件!"+ '\n'
            res3 = res3 + str3
        else:
            str4 = "批量转换完成!"+ '\n'
            res4 = res4 + str4

        res = res1 + res2 + res3 + res4
        return res

############################################################

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    elif event == "确认转换" :
        cur_type = window["-COMBO-"].get()
        if cur_type == "tif - jpg":
            src_folder = "tif_files"    #文件夹路径
            trg_folder = "jpg_files"  # 文件夹路径
            result = batch_tif_to_trg(src_folder, trg_folder)
        elif cur_type == "tif - png":
            src_folder = "tif_files"  # 文件夹路径
            trg_folder = "png_files"  # 文件夹路径
            result = batch_tif_to_trg(src_folder, trg_folder)

        window["-trn_aft_text-"].Update(result)
  • 运行结果
    -图像格式转换工具界面
    图像格式转换工具信息打印
    图像转换工具程序列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值