如何使用Python Image Library裁剪通过鼠标单击选择的区域?

时间:2011-07-07 16:03:56

标签: python image image-processing python-imaging-library

有没有办法用鼠标点击选择图像中的区域并使用python PIL裁剪这些区域?我该怎么办?

由于

3 个答案:

答案 0 :(得分:2)

PIL库本身不提供GUI代码 - 您要求的是具有GUI的应用程序。我建议使用Tkinter + PIL,但它不可能是微不足道的 - 你必须处理鼠标点击,创建跟踪它的矩形对象,有办法“重置”矩形,等等。

不幸的是,用于绘制内容的Canvas Tkinter小部件文档记录很少 - 您必须在此处阅读: http://www.pythonware.com/library/tkinter/introduction/canvas.htm

Bellow有一个示例代码,它从磁盘读取图像文件并在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()

答案 1 :(得分:1)

这篇文章的答案非常发达: Image Cropping using Python

它使用pygame作为GUI。

答案 2 :(得分:0)

我试图制作一个类似这样的小工具在Jupyter生态系统中运行,以便您可以裁剪图像,然后稍后在同一笔记本中使用裁剪后的结果。它设计用于许多图像,使您可以顺序裁剪每个图像。 Check it out and see if it works for you。可以通过pip install interactivecrop安装,但是您需要查看博客文章以获取使用说明。