如何在Python中使用PIL转换
这是我的代码,我收到错误消息: 。。。返回getattrself.tk,attr 属性错误:临时图片 我需要设置两个按钮:[放大]和[缩小] 如果你有更好的想法,请说出来 我将使用这张图片通过图形结构绘制地图如何在Python中使用PIL转换,python,python-imaging-library,Python,Python Imaging Library,这是我的代码,我收到错误消息: 。。。返回getattrself.tk,attr 属性错误:临时图片 我需要设置两个按钮:[放大]和[缩小] 如果你有更好的想法,请说出来 我将使用这张图片通过图形结构绘制地图 from Tkinter import * from PIL import Image, ImageTk, ImageDraw, ImageOps, ImageEnhance bairro = "botafogo.jpg" class Painel(Tk)
from Tkinter import *
from PIL import Image, ImageTk, ImageDraw, ImageOps, ImageEnhance
bairro = "botafogo.jpg"
class Painel(Tk):
def __init__(self):
Tk.__init__(self) #create ui
self.zoom = Frame(self)
self.zoom.pack()
self.zin = Button(self.zoom, command = self.zoom_in, text = "Zoom In")
self.zin.pack()
self.zout = Button(self.zoom, command = self.zoom_out, text = "Zoom Out")
self.zout.pack()
self.c = Canvas(self, bd=0, highlightthickness=0, width=100, height=100)
self.c.pack(fill='both', expand=1)
self.main_pic = Image.open(bairro) #load image
self.main_pic.thumbnail((800, 600))
self.tkphoto = ImageTk.PhotoImage(self.main_pic)
self.canvasItem = self.c.create_image(0, 0, anchor='nw', image = self.tkphoto)
self.c.config(width = self.main_pic.size[0], height = self.main_pic.size[1])
self.temp = self.main_pic.copy() # 'working' image
def update_painel(self):
self.tkphoto = ImageTk.PhotoImage(self.temp_pic)
self.c.itemconfigure(self.canvasItem, image = self.tkphoto)
def zoom_in(self):
self.temp_pic = self.temp_pic.transform( ( self.temp_pic.size[0]/2,
self.temp_pic.size[0]/2
),
Image.EXTEND,
( 0, 0, self.temp_pic[0], self.temp_pic[1]
)
)
self.update_painel()
def zoom_out(self):
self.temp_pic = self.main_pic
self.update_painel()
app = Painel()
app.mainloop()
深度复制指令应为 self.temp\u pic=self.main\u pic.复制“工作”图像 而不是 self.temp=self.main\u pic.copy“工作”图像**