Как получить Tkinter Для отображения очень большого изображения без полос прокрутки? - PullRequest
1 голос
/ 21 февраля 2020

Я пытаюсь заставить Tkinter отображать очень большое изображение из URL-адреса, но изображение не отображается полностью в окне. Я хотел бы иметь возможность видеть все изображение без необходимости прокрутки. Я пытался изменить размер и тому подобное, но, похоже, это не имело большого эффекта. Любая помощь будет оценена. ссылка img: https://web2.hirez.com/smite-media//wp-content/uploads/2017/07/Fafnir.jpg

Мой код:

from tkinter import *
import io
import urllib.request
from PIL import ImageTk, Image

canvas = Tk()
page = urllib.request.urlopen("https://web2.hirez.com/smite-media//wp-content/uploads/2017/07/Fafnir.jpg")
background = Image.open(io.BytesIO(page.read()))
tkimage = ImageTk.PhotoImage(background)
panel1 = Label(canvas, image=tkimage)
panel1.grid(ipadx=0, ipady=0, sticky=E)
mainloop()

Текущий результат

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Используйте атрибут size и метод resize(w, h), чтобы делать то, что вы хотите. Вот пример, который делит размер изображения на два: плавание как результат деления.

Примечание 1: , если качество выходного изображения для вас важнее, чем скорость, используйте background.resize((width // 2, height // 2), Image.ANTIALIAS).

0 голосов
/ 21 февраля 2020

background = background.resize ((w, h), Image.ANTIALIAS)

...