дополнительный вопрос Я работаю над проектом для члена семьи, у меня довольно ограниченный опыт работы с Python. Я написал свой сценарий на Python, и он работает именно так, как мне нужно. Код делает снимок и добавляет красную границу либо к длине, либо к ширине, чтобы создать квадрат.
Моя проблема в том, что член моей семьи не использует Python, и после небольшого исследования я наткнулся на tkinter для GUI. Я хотел бы иметь текстовое поле, в котором можно ввести имя изображения, и которое запускает код из строки ввода.
У меня есть его, где вы вводите MyImage.PNG в консоль, и он сохраняет версию границы в тот же файл. Кроме того, я понимаю, как проектировать с помощью tkinter, но не как на самом деле выполнить мой скрипт с текстовым полем / кнопками. Есть какие-нибудь советы о том, как этого добиться?
Я хотел бы вызывать изображения из файла без необходимости индивидуального ввода имени изображения. Возможно ли это через открытый l oop? Или даже с помощью виджета Tkinter, чтобы прочитать файл изображений, создать список из файла, а затем индивидуально выбрать каждое изображение и нажать Enter.
Спасибо!
from PIL import Image, ImageOps
import math
original = input("Please enter an input: ")
im = Image.open(original)
print(im.size)
print(type(im.size))
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')