更新界面,方便用户

时间:2020-07-12 13:53:08

标签: python loops user-interface tkinter interface

我正在编写一个代码,该代码将从文件中调用图像,并在图像上带有红色正方形边框,并将其另存为新图像。我正在努力使代码“便于用户使用”,因为这是家庭成员可以使用的。

我现在正在使用tkinter创建一个界面。我有一个简单的类型,现在就输入代码,我试图找到一种无需输入图像名称即可选择图像的方法。我以为它必须经过某种循环,但可能只是使用tkinter?

我想从文件中调用图像,而不必单独键入图像名称。通过开环有可能吗?甚至使用Tkinter窗口小部件读取图像文件,从该文件创建列表,然后可以分别选择每个图像并按Enter。

谢谢!

from tkinter import *
import tkinter as tk 
from PIL import Image, ImageOps
import math


def Get_Name_Of_Picture():
    original=str(PicName.get())
    im = Image.open(original)
    
    print(im.size)
    print(type(im.size))
    # (400, 225)
    # <class 'tuple'>
    
    w, h = im.size
    print('width: ', w)
    print('height:', h)
    
    if w>h:
        x = w - h
        b = math.floor(x/2)
        a = 0
    if w<h:
        x = h - w
        a = math.floor(x/2)
        b = 0
            
        
    def add_border(input_image, output_image, border, color=0):
        img = Image.open(input_image)
        if isinstance(border, int) or isinstance(border, tuple):
            bimg = ImageOps.expand(img, border=border, fill=color)
        else:
            raise RuntimeError('Border is not an integer or tuple!')
        bimg.save(output_image)
    if __name__ == '__main__':
         add_border(original,
                    output_image= 'border' + original,
                    border=(a,b,a,b),
                    color='indianred')
    original=str(PicName.get())

screen = tk.Tk()

PicName=tk.Entry(screen)
PicName.pack()

openFile = tk.Button(screen, text='Enter', command=Get_Name_Of_Picture, fg="white", bg="#263D42")

openFile.pack()

screen.mainloop()

0 个答案:

没有答案