O que python-3 está usando em vez de PIL para manipular imagens?
Pillow
partir do PyPI, que deve ser um substituto para PIL
; este é o pacote preferido no Python 2 também.
O que python-3 está usando em vez de PIL para manipular imagens?
Pillow
partir do PyPI, que deve ser um substituto para PIL
; este é o pacote preferido no Python 2 também.
Respostas:
O travesseiro "amigável PIL fork" funciona no Python 2 e 3 . Confira o projeto Github para matriz de suporte e assim por diante.
pip3 install Image
(eu estava usando travesseiro sem saber) e vocêfrom PIL import Image
. Ele também suporta todas as principais plataformas agora. Ao procurar um PIL para python3, essa é definitivamente a escolha.
Christoph Gohlke conseguiu criar o PIL (apenas para Windows) para versões python até 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/
Eu tentei a sua versão do PIL com Python 3.2 e a imagem abre / cria / manipulação de pixels / salva todo o trabalho.
O Qt funciona muito bem com gráficos. Na minha opinião, é mais versátil que o PIL.
Você obtém todos os recursos que deseja para manipulação de gráficos, mas também existem gráficos vetoriais e até suporte para impressoras reais. E tudo isso em uma API uniforme QPainter
,.
Para usar o Qt, você precisa de uma ligação Python: PySide ou PyQt4 .
Ambos suportam Python 3.
Aqui está um exemplo simples que carrega uma imagem JPG, desenha um círculo antialias de raio 10 nas coordenadas (20, 20) com a cor do pixel que estava nessas coordenadas e salva a imagem modificada como um arquivo 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')
Mas observe que esta solução é bastante 'pesada', porque o Qt é uma estrutura grande para criar aplicativos de GUI.
Em 30 de março de 2012, tentei e não consegui colocar o garfo sloonz no GitHub para abrir imagens. Eu consegui compilar ok, mas na verdade não funcionou. Também tentei criar a biblioteca do gohlke, que também compilou, mas não conseguiu abrir nenhuma imagem. Alguém mencionou o PythonMagick acima, mas ele é compilado apenas no Windows. Veja PythonMagick no wiki do wxPython .
O PIL foi atualizado pela última vez em 2009 e, embora o site diga que eles estão trabalhando em uma porta Python 3, faz 3 anos e a lista de discussão ficou fria.
Para resolver meu problema de manipulação de imagem no Python 3, estou usando subprocess.call()
para executar comandos de shell do ImageMagick. Este método funciona.
Consulte a documentação do módulo de subprocesso .
Você pode usar minhas mahotas de pacotes no Python 3. É baseado em numpy e não em PIL.
Você quer a biblioteca Pillow , aqui está como instalá-la no Python 3:
pip3 install Pillow
Se isso não funcionar para você (deveria), tente normal pip
:
pip install Pillow
Dependendo do que for necessário, o scikit-image pode ser a melhor escolha, com manipulações que vão muito além do PIL e da versão atual do Pillow. Muito bem conservado, pelo menos tanto quanto travesseiro. Além disso, as estruturas de dados subjacentes são da Numpy e Scipy, o que torna seu código incrivelmente interoperável. Exemplos que o travesseiro não pode lidar:
Você pode ver seu poder na galeria . Este artigo fornece uma ótima introdução a ele. Boa sorte!
Se você estiver no Python3, também poderá usar a biblioteca PILasOPENCV, que funciona no Python 2 e 3. As chamadas de API de função são as mesmas do PIL ou travesseiro, mas internamente funciona com OpenCV e numpy para carregar, salvar e manipular imagens. Dê uma olhada em https://github.com/bunkahle/PILasOPENCV ou instale-o com o pip install PILasOPENCV. Nem todas as funções PIL foram simuladas, mas as funções mais comuns funcionam.