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 является большой платформой для создания приложений с графическим интерфейсом.