Библиотека изображений для Python 3

Что такое python-3 вместо PIL для управления изображениями?

Ответ 1

"Дружественная вилка PIL" Pillow работает на Python 2 и 3. Просмотрите проект Github для поддержки матрицы и т.д.

Ответ 2

Christoph Gohlke удалось создать PIL (только для Windows) для версий python до 3,3: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Я попробовал свою версию PIL с Python 3.2, а изображение открыло/создало/обработало пиксель/сохранил все работы.

Ответ 3

Qt отлично работает с графикой. По-моему, он более универсален, чем PIL.

Вы получаете все функции, которые вы хотите для графических манипуляций, но там также есть векторная графика и даже поддержка реальных принтеров. И все это в одном унифицированном API, QPainter.

Для использования Qt вам понадобится привязка Python для него: PySide или PyQt4.
Они поддерживают Python 3.

Вот простой пример, который загружает изображение в формате JPG, рисует сглаженный круг радиуса 10 в координатах (20, 20) с цветом пикселя, который был в этих координатах, и сохраняет измененное изображение в виде файла PNG:

from PySide.QtCore import *
from PySide.QtGui import *

app = QCoreApplication([])

img = QImage('input.jpg')

g = QPainter(img)
g.setRenderHint(QPainter.Antialiasing)
g.setBrush(QColor(img.pixel(20, 20)))
g.drawEllipse(QPoint(20, 20), 10, 10)
g.end()

img.save('output.png')

Но обратите внимание, что это решение довольно "тяжеловес", потому что Qt - это большая платформа для создания графических приложений.

Ответ 4

По состоянию на 30 марта 2012 года я попытался и не смог получить вилку sloonz на GitHub для открытия изображений. Я получил его для компиляции в порядке, но на самом деле это не работало. Я также попытался создать библиотеку gohlke, и она тоже скомпилировалась, но не открыла никаких изображений. Кто-то упомянул PythonMagick выше, но он компилируется только в Windows. См. PythonMagick в wxPython wiki.

PIL был в последний раз обновлен в 2009 году, и, хотя на веб-сайте говорится, что они работают над портом Python 3, прошло 3 года, и список рассылки остыл.

Чтобы решить проблему с обработкой изображений Python 3, я использую subprocess.call() для выполнения команд оболочки ImageMagick. Этот метод работает.

Смотрите документацию подпроцесса.

Ответ 5

Вы можете использовать мой пакет mahotas на Python 3. Он основан на основе numpy, а не на PIL.

Ответ 6

Вам нужна Pillow библиотека, вот как установить ее на Python 3:

pip3 install Pillow

Если это не работает для вас (оно должно), попробуйте нормальный pip:

pip install Pillow