Как обрезать область, выделенную щелчком мыши, с помощью библиотеки изображений Python? - PullRequest
2 голосов
/ 07 июля 2011

Есть ли способ выбрать область на изображении с помощью щелчка мыши и обрезать эти области с помощью Python PIL? Как я могу это сделать?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 июля 2011

Сама библиотека PIL не предоставляет код GUI - вы запрашиваете приложение с графическим интерфейсом. Я бы предложил использовать Tkinter + PIL, но это никак не тривиально - вам придется обрабатывать щелчки мыши, создавать отслеживающий объект прямоугольника, иметь способ «сбросить» прямоугольник и т. Д. *

К сожалению, виджет Canvas Tkinter, который используется для рисования, плохо документирован - вам придется прочитать его здесь: http://www.pythonware.com/library/tkinter/introduction/canvas.htm

Ниже приведен пример кода, который считывает файл изображения с диска и рисует его в окне 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 голос
/ 02 января 2012

ответ на этот пост довольно хорошо разработан: Обрезка изображений с использованием Python

В качестве графического интерфейса используется Pygame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...