Я пытаюсь открыть файлы изображений и отобразить их в python 3.8, используя Tkinter и Pillow, но что-то неправильно масштабирует изображения на моем экране.
import tkinter as tk
from PIL import Image, ImageTk
class ViewingWindow(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.image = None
self.canvas = tk.Canvas(self, width=500, height=500)
self.canvas.pack()
def setImage(self, img):
self.image = img
print(img.width())
print(img.height())
print(self.canvas["width"])
print(self.canvas["height"])
self.canvas.create_image(0, 0, anchor=tk.NW, image=img)
window = tk.Tk()
canvas = ViewingWindow(window)
canvas.pack()
img = Image.open("500x500.jpg")
img = ImageTk.PhotoImage(img)
canvas.setImage(img)
window.mainloop()
Это результат, показанный для справки: Windows Просмотрщик изображений в «Показать фактический размер» и Gimp при масштабировании = 100%: 
Все 4 оператора печати показывают «500», каждая часть системы, похоже, согласны с тем, что изображение отображается в 500x500, за исключением фактических пикселей на экране. По какой-то причине он масштабируется до значения, близкого к 750x750, что в мире масштабирует мое изображение? Это согласуется со всеми изображениями, которые я пытался открыть в Tkinter, и независимо от размера окна и размеров виджетов.
Протестировано на Windows 10 с разрешением экрана 1920x1080.