簡體   English   中英

照片圖像縮放

[英]PhotoImage zoom

我正在嘗試放大圖像並使用以下代碼顯示它

import tkinter as tk
from PIL import Image as PIL_image, ImageTk as PIL_imagetk

window = tk.Tk()

img1 = PIL_imagetk.PhotoImage(file="C:\\Two.jpg")
img1 = img1.zoom(2)

window.mainloop()

但是 python 說AttributeError: 'PhotoImage' object has no attribute 'zoom' 這里有一篇相關帖子的評論: PhotoImage 下的圖像調整大小,上面寫着“PIL 的 PhotoImage 沒有實現 Tkinter 的 PhotoImage 的縮放(以及其他一些方法)”。

我認為這意味着我需要在我的代碼中導入其他內容,但我不確定是什么。 任何幫助都會很棒!

img1沒有方法zoom ,但是img1._PhotoImage__photo有。 所以只需將您的代碼更改為:

import tkinter as tk
from PIL import Image as PIL_image, ImageTk as PIL_imagetk

window = tk.Tk()

img1 = PIL_imagetk.PhotoImage(file="C:\\Two.jpg")
img1 = img1._PhotoImage__photo.zoom(2)

label =  tk.Label(window, image=img1)
label.pack()

window.mainloop()

順便說一句,如果要縮小圖像,可以使用subsample img1 = img1._PhotoImage__photo.subsample(2)方法將圖片縮小一半。

如果您有 PIL 圖像,那么您可以使用調整大小,如下例所示:

import tkinter as tk
from PIL import Image, ImageTk

window = tk.Tk()

image = Image.open('C:\\Two.jpg')
image = image.resize((200, 200), Image.ANTIALIAS)
img1 = ImageTk.PhotoImage(image=image)

label = tk.Label(window, image=img1)
label.pack()

window.mainloop()

注意我只是導入ImageImageTk ,不需要重命名為PIL_imagePIL_imagetk ,這對我來說只是令人困惑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM