python 文件对话框 打开图片保存到另一文件夹
时间: 2023-05-26 12:07:40 浏览: 171
下面是一个实现打开文件对话框并保存图片至另一文件夹的Python代码示例:
```python
import tkinter as tk
from tkinter import filedialog
from PIL import Image
# 创建一个GUI窗口
root = tk.Tk()
root.withdraw()
# 选择要打开的文件路径
file_path = filedialog.askopenfilename()
if file_path:
# 打开这个文件并转换为PIL图像对象
image = Image.open(file_path)
# 选择要保存的文件夹路径
save_path = filedialog.askdirectory()
if save_path:
# 保存图像至所选文件夹下,可以选择重命名或修改图片格式
image.save(save_path+'/new_image.jpg')
```
代码首先导入所需的库,包括`tkinter`、`filedialog`和`PIL`。
然后创建了一个GUI窗口并隐藏它,接着使用`filedialog`库选择要打开的文件。如果用户选择了一个文件路径,则打开该文件并使用`PIL`将其转换为一个图像对象。
接下来,再次使用`filedialog`库选择要保存图像的文件夹路径。如果用户选择了一个保存路径,则将图像保存至该路径下。
最后,代码可以进一步修改以适应更多要求,例如让用户选择要保存的文件名或格式。
相关问题
帮我写一个打开文件对话框然后选择图片文件打开并保存到指定文件夹的代码
好的,以下是一个基于Python tkinter的简单示例代码,可以实现打开文件对话框选择图片文件并保存到指定文件夹:
```python
import tkinter as tk
from tkinter import filedialog
from PIL import Image
import os
root = tk.Tk()
root.withdraw()
# 打开文件对话框
file_path = filedialog.askopenfilename(filetypes=[("Image Files", "*.png;*.jpg;*.jpeg")])
# 读取图片文件
img = Image.open(file_path)
# 选择保存的文件夹
save_dir = filedialog.askdirectory()
# 获取图片文件名
file_name = os.path.basename(file_path)
# 拼接保存路径和文件名
save_path = os.path.join(save_dir, file_name)
# 保存图片文件
img.save(save_path)
print("图片文件已保存!")
```
这段代码与之前的代码类似,不同之处在于使用了`filedialog`模块的`askdirectory()`方法来选择保存的文件夹,并使用`os`模块来获取图片文件名和拼接保存路径和文件名。你可以根据自己的需要进行修改和扩展。
python tk通过选择文件夹保存图片
如果您希望用户能够选择保存图片的文件夹,可以使用`tkinter.filedialog.asksaveasfilename()`函数,该函数可以弹出一个对话框,让用户选择保存文件的位置和文件名。以下是一个示例代码:
```python
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
root = tk.Tk()
# 创建一个保存图片的函数
def save_image():
# 获取当前显示的图片
img = l1.image
if img is None:
return
# 弹出一个对话框,让用户选择保存文件的位置和文件名
filename = filedialog.asksaveasfilename(defaultextension='.jpg')
if filename:
# 保存图片
img.save(filename)
# 创建一个选择图片的函数
def choose_image():
# 弹出一个对话框,让用户选择图片
filename = filedialog.askopenfilename()
if filename:
# 打开选择的图片
img_open = Image.open(filename)
# 缩放图片
img = ImageTk.PhotoImage(img_open.resize((500, 500)))
# 显示图片
l1.config(image=img)
l1.image = img
# 创建一个Button用于选择图片
btn_choose = tk.Button(root, text='选择图片', command=choose_image)
btn_choose.pack()
# 创建一个Button用于保存图片
btn_save = tk.Button(root, text='保存图片', command=save_image)
btn_save.pack()
# 创建一个Label用于显示图片
l1 = tk.Label(root)
l1.pack()
root.mainloop()
```
在这个示例代码中,我们创建了两个Button控件,一个用于选择图片,一个用于保存图片。当用户点击选择图片按钮时,会弹出一个对话框,让用户选择一张图片。当用户点击保存图片按钮时,会弹出一个对话框,让用户选择保存图片的位置和文件名,并将当前显示的图片保存到指定的文件夹中。需要注意的是,如果当前没有显示任何图片,保存图片的操作将不会执行。
阅读全文