Использование метки Tkinter в команде - PullRequest
0 голосов
/ 12 июля 2020

Я работаю над проектом, который придает фотографии квадратную рамку. Я пытаюсь создать GUI, где вы выбираете фотографию из своих файлов, и она автоматически изменяет размер и сохраняет фотографию.

У меня написан код изменения размера, открывается диалоговое окно файла, и я могу получить этикетка фотографии. Есть ли способ использовать эту метку в качестве входных данных для моей команды import_photo?

Возможно, я делаю это не самым эффективным способом, поэтому, пожалуйста, дайте мне знать, если вы знаете лучший способ go об этом . Обычно я хочу открыть файл, выбрать фотографию и пропустить эту фотографию с помощью моего кода обрезки.

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

def Import_Photo():
#    original = input("Please enter an input: ")
    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)
    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')
            
root = tk.Tk()

def open():
    root.filename = filedialog.askopenfilename(initialdir = "/RobertsCode",title = "Select file",filetypes = (("JPG Files","*.jpg"),("PNG Files","*.png"),("all files","*.*")))
    my_label = Label(root, text=root.filename).pack()
    my_image = ImageTk.PhotoImage(Image.open(root.filename))
    my_image_label = label(image=my_image).pack()
    
my_btn = Button(root, text="Open File", command=open).pack()

#tk.Button(root, text='Enter', command=Import_Photo, fg="white", bg="#263D42")

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...