Co to jest Python-3 używający zamiast PIL do manipulowania obrazami?Biblioteka obrazów dla Python 3
Odpowiedz
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.
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.
Możesz użyć mojego pakietu mahotas na Pythonie 3. Jest oparty na numpy zamiast na PIL.
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.
"Przyjazny fork PIL" Pillow działa na Pythonie 2 i 3. Sprawdź Github project dla matrycy wsparcia i tak dalej.
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
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
Czy sprawdziłeś moduł multimedialny? (import media) – inspectorG4dget
@ inspectorG4dget: media nie znajdują się w standardowej bibliotece python3 – banx
Nie sądziłem, że PIL jest standardem.Ale wygląda na to, że się mylę – inspectorG4dget