2010-10-09 25 views
141

Co to jest Python-3 używający zamiast PIL do manipulowania obrazami?Biblioteka obrazów dla Python 3

+0

Czy sprawdziłeś moduł multimedialny? (import media) – inspectorG4dget

+0

@ inspectorG4dget: media nie znajdują się w standardowej bibliotece python3 – banx

+0

Nie sądziłem, że PIL jest standardem.Ale wygląda na to, że się mylę – inspectorG4dget

Odpowiedz

7

Od 30 marca 2012 roku próbowałem i nie udało mi się uzyskać widelca sloonz na GitHub, aby otworzyć obrazy. Mam go do kompilacji ok, ale tak naprawdę nie działa. Próbowałem także budować bibliotekę gohlke, a także kompilowałem, ale nie udało się otworzyć żadnych obrazów. Ktoś wspomniał wyżej o PythonMagick, ale kompiluje się tylko w systemie Windows. Zobacz PythonMagick on the wxPython wiki.

PIL był ostatnio aktualizowany w 2009 r., A podczas gdy jego strona internetowa mówi, że pracuje nad portem Python 3, minęły 3 lata, a lista mailingowa zmarzła.

Aby rozwiązać problem z manipulowaniem obrazem w języku Python 3, używam subprocess.call() do wykonywania poleceń powłoki ImageMagick. Ta metoda działa.

Zobacz the subprocess module documentation.

19

Christoph GOHLKE udało się zbudować PIL (tylko w systemie Windows) dla wersji Pythona aż do 3.3: http://www.lfd.uci.edu/~gohlke/pythonlibs/

Próbowałem swoją wersję PIL z Python 3.2, a obraz otwarty/tworzyć manipulacji/piksel/zapisywać wszystkie prace.

6

Możesz użyć mojego pakietu mahotas na Pythonie 3. Jest oparty na numpy zamiast na PIL.

13

Qt działa bardzo dobrze z grafiką. Moim zdaniem jest bardziej wszechstronny niż PIL.

Masz wszystkie funkcje potrzebne do manipulacji grafiką, ale jest też grafika wektorowa, a nawet obsługa prawdziwych drukarek. A wszystko to w jednym jednolitym API, QPainter.

Aby użyć Qt trzeba Python wiążący dla niego: PySide lub PyQt4.
Obaj Python wsparcie 3.

Oto prosty przykład, który ładuje obraz JPG, rysuje antyaliasing okręgu o promieniu na współrzędnych (20, 20) z kolorem piksela, który był w te współrzędne i zapisuje zmodyfikowany obraz jako plik 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') 

Ale proszę pamiętać, że to rozwiązanie jest dość „wagi ciężkiej”, bo jest duży Qt framework do tworzenia aplikacji GUI.

91

"Przyjazny fork PIL" Pillow działa na Pythonie 2 i 3. Sprawdź Github project dla matrycy wsparcia i tak dalej.

+2

Jest [nadal aktywnie rozwijany] (https://github.com/python-pillow/Pillow/releases) jak na październik 2014, [ma fajny dokument] (http://pillow.readthedocs.org/index. html), możesz 'pip3 zainstalować Image' (używałam poduszek bez wiedzy) i [ty' from PIL import Image'] (http://pillow.readthedocs.org/en/latest/handbook/tutorial.html) . Obsługuje również [wszystkie główne platformy] (http://pillow.readthedocs.org/en/latest/installation.html#platform-support) teraz. Szukając PIL dla python3, jest to zdecydowanie wybór. – Yosh

4

Chcesz Pillow bibliotekę, oto jak go zainstalować na Python 3:

pip3 install Pillow 

Jeśli to nie zadziała dla ciebie (nie powinien), spróbuj normalny pip:

pip install Pillow