如何使用Python图像库裁剪鼠标单击选定的区域?

如何使用Python图像库裁剪鼠标单击选定的区域?,python,image,image-processing,python-imaging-library,Python,Image,Image Processing,Python Imaging Library,有没有一种方法可以通过鼠标单击在图像中选择一个区域并使用python PIL裁剪这些区域?我怎么做 谢谢PIL库本身不提供GUI代码——您需要的是一个带有GUI的应用程序。我建议使用Tkinter+PIL,但这不是一件小事——你必须处理鼠标点击,创建一个跟踪它的矩形对象,有办法“重置”矩形,等等 不幸的是,用于绘制东西的Canvas Tkinter小部件的文档记录很差-您必须在此处阅读: 下面是一个从磁盘读取图像文件并在tkinter窗口上绘制的示例代码。正如你所看到的,这里有一些对象的杂耍,

有没有一种方法可以通过鼠标单击在图像中选择一个区域并使用python PIL裁剪这些区域?我怎么做


谢谢

PIL库本身不提供GUI代码——您需要的是一个带有GUI的应用程序。我建议使用Tkinter+PIL,但这不是一件小事——你必须处理鼠标点击,创建一个跟踪它的矩形对象,有办法“重置”矩形,等等

不幸的是,用于绘制东西的Canvas Tkinter小部件的文档记录很差-您必须在此处阅读:

下面是一个从磁盘读取图像文件并在tkinter窗口上绘制的示例代码。正如你所看到的,这里有一些对象的杂耍,以获得正确的

import Tkinter
import Image, ImageTk, ImageDraw

image_file = "svg.png"

w = Tkinter.Tk()

img = Image.open(image_file)
width, height = img.size
ca = Tkinter.Canvas(w, width=width, height=height)
ca.pack()
photoimg = ImageTk.PhotoImage("RGB", img.size)
photoimg.paste(img)
ca.create_image(width//2,height//2, image=photoimg)
Tkinter.mainloop()

这篇文章的答案相当成熟:


它使用pygame作为GUI。

我尝试在Jupyter生态系统中运行这样一个小工具,以便您可以裁剪图像,然后在同一个笔记本中使用裁剪后的结果。它设计用于处理许多图像,让您可以按顺序裁剪每个图像。可以通过
pip install interactivecrop
安装,但您需要查看博客文章以了解使用说明

一旦你有了鼠标点击坐标,在PIL中就很容易了,但是你是在问如何获得鼠标点击吗?这将超出PIL的范围。您将使用什么gui库?首先感谢您的回答。我使用了你的例子,但是我不能用鼠标选择图像并裁剪选择的图像。