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