2010-02-04 10 views
17

Nie znalazłem standardowego sposobu w Pythonie do odczytu obrazów. Czy naprawdę nie ma (ponieważ jest tak wiele funkcji dla tak wielu niestandardowych rzeczy, że naprawdę zastanawiam się, że nie ma funkcji do odczytu obrazów)? A co to jest? (Powinien być dostępny w standardowej instalacji MacOSX oraz w najnowszych wersjach w dystrybucji Linuksa).Python: domyślny/popularny sposób odczytu obrazów PNG

Jeśli nie ma, to co jest najpopularniejsze?

Wiele wyników wyszukiwania wskazuje na bibliotekę obrazowania Python. Jeśli jest to dobrze znana biblioteka Pythona do czytania obrazów, dlaczego nie jest ona zawarta w Pythonie?

+3

Nie wszystko powinno znajdować się w standardowej bibliotece. W rzeczywistości jest już za dużo. –

Odpowiedz

23

Nie, w standardowej bibliotece nie ma modułów do bezpośredniego odczytu/zapisu/przetwarzania obrazów. Ale najczęstszą biblioteką może być PIL (Python Imaging Library). Wiele projektów nie znajduje się w standardowej bibliotece, ponieważ są one 1) całkowicie opcjonalne i 2) nie mogą być utrzymywane przez kilku programistów Pythona.

+1

Python Imaging Library rocks. – Mark

+1

Cóż, nie bardzo rozumiem, dlaczego ma regexp, unzip, http, imap, ftp i wszystko inne (nie zrozumcie mnie źle: jestem naprawdę szczęśliwy, że to wszystko), ale nie proste funkcje ładowania obrazu. Ale dobrze, dzięki za te informacje! – Albert

+1

Lennart Regebro już to wskazał: standardowa biblioteka Pythona zawiera zbyt wiele rzeczy, których 1) nie jest używana, 2) nie należy do standardowej biblioteki lub 3) ma kwestionowaną jakość. Mam nadzieję, że będzie więcej porządków w Pythonie 4.x ... – AndiDog

0

Sugerowany plik PIL nie obsługuje plików PNG z przeplotem. Może to być dość dziwne, gdy mamy do czynienia z dużą ilością plików PNG pochodzących z różnych źródeł. Możliwe jest ich otwarcie, ale można tylko odczytać z nich informacje z nagłówków, wszystkie inne operacje kończą się niepowodzeniem.

+0

Więc, jakie masz inne sugestie? Jaka jest najlepsza lib? – Albert

+2

Cóż, nie użyłem żadnych innych bibliotek graficznych oprócz PIL w pythonie, ale [pypng] (http://code.google.com/p/pypng/) twierdzi, że obsługuje wszystkie typy plików PNG. Jest to czysty python, więc nie jest to najszybszy sposób na otwieranie plików PNG i ma dość ograniczony interfejs API. Sądzę, że można go użyć do załadowania PNG z przeplotem do PIL. Można sprawdzić, czy plik PNG jest z przeplotem w dykcie "info" klasy Obraz Poza tym istnieją również powiązania Python dla [ImageMagick] (http://www.imagemagick.org/script/api.php). – user266458

2

Coming późno do partii, chciałbym zdecydowanie wskazują jedną z biblioteki Python interfaces to the ImageMagick (Wand działa dobrze w moich testów, będę wiedział więcej wkrótce ...)

ImageMagick jest mocniejszy biblioteka, a także dość również standard de facto w wielu językach. Odwołując się do szerszej bazy, w rezultacie mają także szerszą bazę programistów.

Powiązane problemy