在tkinter python中将'askedfilename'函数中的图片保存到本地

在tkinter python中将'askedfilename'函数中的图片保存到本地,python,image,tkinter,save,Python,Image,Tkinter,Save,我的目的是在导入到tkinter的图像上创建一个应用程序写入(条目标签),并使用“asksaveasfilename”导出,以询问用户希望保存为什么格式 我试过了 'image.save()' 提前感谢。图像。保存是正确的,但您需要先抓取屏幕并裁剪图像。现在,您正在保存打开的图像 from PIL import ImageGrab import tkinter as tk from tkinter import filedialog root = tk.Tk() tk.Entry(root).

我的目的是在导入到tkinter的图像上创建一个应用程序写入(条目标签),并使用“asksaveasfilename”导出,以询问用户希望保存为什么格式

我试过了 'image.save()'


提前感谢。

图像。保存
是正确的,但您需要先抓取屏幕并裁剪图像。现在,您正在保存打开的图像

from PIL import ImageGrab
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
tk.Entry(root).pack()

def save_pic():
    result = filedialog.asksaveasfilename(initialdir="/", title="Select file", filetypes=(
        ('JPEG', ('*.jpg', '*.jpeg', '*.jpe')), ('PNG', '*.png'), ('BMP', ('*.bmp', '*.jdib')), ('GIF', '*.gif')))
    if result:
        x = root.winfo_rootx()
        y = root.winfo_rooty()
        height = root.winfo_height() + y
        width = root.winfo_width() + x
        ImageGrab.grab().crop((x, y, width, height)).save(result)

tk.Button(root,text="Click me",command=save_pic).pack()

root.mainloop()

我试过你的方法:我做对了吗?在
save
函数中,它应该是
result=asksaveasfilename(…)
。或者随便改名。对不起,我试过了,忘了给你更新。回溯(最近一次调用):文件“C:\Users\johnm\AppData\Local\Programs\Python37\lib\tkinter_init_uu2;.py”,第1705行,在调用返回self.func(*args)文件“D:/WEBAPPLICATION/autoeditshit/StarLabs.py”中,第42行,在save ImageGrab.grab()中。裁剪((x,y,width,height))。保存(结果)文件“C:\Users\johnm\AppData\Local\Programs\Python\37\lib\site packages\PIL\Image.py”,第2070行,在save-raise-ValueError(“未知文件扩展名:{}”。格式(ext))ValueError:未知文件扩展名:保存文件时需要输入文件扩展名,即在“文件”对话框中键入
abc.jpg
。现在它可以工作了!谢谢,您确实保存了我的生命。您向我们展示了您的尝试,但没有解释代码不够好的原因。您尝试的代码有什么问题?它保存了错误的代码吗图像?它是否将正确的图像保存到错误的位置?它是否抛出错误?如果它抛出错误,错误是什么?谢谢,伙计,亨利先生刚刚帮助了我。问题解决了。现在我正在考虑如何结案。
from PIL import ImageGrab
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
tk.Entry(root).pack()

def save_pic():
    result = filedialog.asksaveasfilename(initialdir="/", title="Select file", filetypes=(
        ('JPEG', ('*.jpg', '*.jpeg', '*.jpe')), ('PNG', '*.png'), ('BMP', ('*.bmp', '*.jdib')), ('GIF', '*.gif')))
    if result:
        x = root.winfo_rootx()
        y = root.winfo_rooty()
        height = root.winfo_height() + y
        width = root.winfo_width() + x
        ImageGrab.grab().crop((x, y, width, height)).save(result)

tk.Button(root,text="Click me",command=save_pic).pack()

root.mainloop()