Изменение размера изображения Python Tkinter - PullRequest
1 голос
/ 18 апреля 2019

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

File "gui.py", line 42, in fileDialog
self.display = Label(image=self.photo.resize((800, 600),Image.ANTIALIAS))
AttributeError: 'PhotoImage' object has no attribute 'resize

Я просто проверяю, подходит ли он, выполняя 800 600, я действительно не знаю.

def fileDialog(self):
    self.filename = filedialog.askopenfilename(title="Select")
    self.label = ttk.Label(self.labelFrame, text="")
    self.label.grid(column=1, row=2)
    self.label.configure(text=self.filename)
    self.photo= ImageTk.PhotoImage(file = self.filename)
    self.display = Label(image=self.photo.resize((800, 600),Image.ANTIALIAS))
    self.display.grid(row=0)

Insert image in blue drawing

Есть что-то, что я делаю неправильно? Пожалуйста, сообщите.

1 Ответ

3 голосов
/ 18 апреля 2019

Вам нужно изменить размер изображения, а не фотоизображения.

import tkinter as tk
from PIL import Image, ImageTk

filename = 'bell.jpg'
img = Image.open(filename)
resized_img = img.resize((200, 100))

root = tk.Tk()
root.photoimg = ImageTk.PhotoImage(resized_img)
labelimage = tk.Label(root, image=root.photoimg)
labelimage.pack()

enter image description here

Чтобы ответить на новый вопрос, вам не нужно знать имя файла во время создания метки. Следующий код дает тот же результат:

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()
labelimage = tk.Label(root)
labelimage.pack()

filename = 'bell.jpg'
img = Image.open(filename)
resized_img = img.resize((200, 100))
root.photoimg = ImageTk.PhotoImage(resized_img)
labelimage.configure(image=root.photoimg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...