Что такое python-3 вместо PIL для управления изображениями?
Библиотека изображений для Python 3
Ответ 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