我在旋转图像后保存图像时遇到问题。我的意思是,当我在旋转图像后调用函数 save 时,什么也没有发生。旧图像保持不变,我的另存为功能也出现了同样的问题。我想问题出在我的旋转功能上:
def right90 (root, image, panel, filemenu):
image = image.transpose(Image.ROTATE_90)
image1 = ImageTk.PhotoImage(image)
root.geometry("%dx%d+%d+%d" % (image.size[0], image.size[1], 0, 0))
panel.configure(image = image1)
panel.pack(side='top', fill='both', expand='yes')
panel.image = image1
下面是我使用的保存功能。我猜它似乎没有任何问题。
def save(image, filename):
image.save(filename)
但是,我似乎无法弄清楚问题出在哪里。我真的希望有人能帮我找到它。谢谢。
已编辑
下面是我声明全局变量的函数。这用于打开图像文件并使用文件的信息为变量赋值。
def display(root):
global filename
filename = askopenfilename(filetypes=[("All Files","*"),("All Picture Files","*bmp; *.png; *.jpg; *.jpeg; *.jpe; *.tif; *.tiff")])
global image
global panel
try:
image = Image.open(filename)
image1 = ImageTk.PhotoImage(file=filename)
root.geometry("%dx%d+%d+%d" % (image.size[0], image.size[1], 0, 0))
panel.configure(image = image1)
panel.pack(side='top', fill='both', expand='yes')
panel.image = image1
except NameError:
image = Image.open(filename)
image1 = ImageTk.PhotoImage(file=filename)
root.geometry("%dx%d+%d+%d" % (image.size[0], image.size[1], 0, 0))
panel= Label(root, image = image1)
panel.pack(side='top', fill='both', expand='yes')
panel.image = image1
以下是我编写的调用旋转函数的代码。以防有人需要。
rotatemenu.choices.add_command(label="rotate right 90°", command = lambda:img.right90(root, image, panel, filemenu))