目录
简介:
在midjourney中通过描述生成图片,并将图片保存到文件夹下,然后使用photoshop切割成等大的四份。听起来就很麻烦,以下有一种方法,使用python来编写一段代码轻松实现切割功能。
源代码:
import tkinter as tk
from tkinter import filedialog
from PIL import Image
class ImageSplitter:
def __init__(self, master):
self.master = master
self.master.title("Image Splitter")
self.image = None
self.image_paths = None
self.image_size = None
self.file_path_label = tk.Label(self.master, text="No file selected")
self.file_path_label.pack()
self.select_button = tk.Button(self.master, text="Select Image", command=self.select_image)
self.select_button.pack()
self.split_button = tk.Button(self.master, text="Split Image", command=self.split_image, state=tk.DISABLED)
self.split_button.pack()
def select_image(self):
self.image_paths = filedialog.askopenfilenames(filetypes=[("Images", "*.jpg;*.jpeg;*.png;*.bmp")])
if self.image_paths:
self.file_path_label.config(text="\n".join(self.image_paths))
self.image = Image.open(self.image_paths[0])
self.image_size = self.image.size
self.split_button.config(state=tk.NORMAL)
def split_image(self):
width, height = self.image_size
new_width = int(width / 2)
new_height = int(height / 2)
# Crop and save the four images
for i in range(4):
x = (i % 2) * new_width
y = (i // 2) * new_height
cropped_image = self.image.crop((x, y, x + new_width, y + new_height))
cropped_image.save(f"image_{i + 1}.png")
self.file_path_label.config(text="Image split into 4 parts!")
root = tk.Tk()
app = ImageSplitter(root)
root.mainloop()
源代码说明:
该程序使用tk.filedialog.askopenfilename
函数打开一个对话框,让用户选择一张图片文件。然后,它使用Pillow库中的Image
和ImageTk
模块来打开图片文件并创建Tkinter图像对象。接着,它计算每个分割后的图片的大小,并使用crop
函数来从原始图像中提取四个部分。最后,程序将每个分割后的图像显示在Canvas上。
效果如下所示:
1)运行程序:
2)选择需要切割的图像:
3)按“split Image”按钮:
4)以下是切好的四图: