我尝试使用tkinter制作“另存为”按钮,将图像保存在特定位置目录中,但遇到了问题。
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from PIL import ImageTk, Image, ImageDraw
import cv2
import numpy as np
img = cv2.imread('face_person1.jpg')
# convert the images to PIL format...
edged = Image.fromarray(img)
edged = ImageTk.PhotoImage(edged)
def savefile():
hsl = Image.open(edged)
hsl = filedialog.asksaveasfile(mode='w', defaultextension=".jpg")
if hsl is None:
return
sv = edged.save()
sv.close()
button = Button(text="save as", command=savefile)
button.pack()
错误信息是:
Exception in Tkinter callback fp = io.BytesIO(fp.read())
AttributeError: 'numpy.ndarray' object has no attribute 'read'
PIL.Image
和ImageTk.PhotoImage
中使用相同的变量edge
,因为ImageTk.PhotoImage
没有保存函数。你必须保存PIL.Image
。 - furas