2010-02-04 19 views
17

No he encontrado una forma estándar en Python para leer imágenes. ¿Realmente no hay ninguno (porque hay tantas funciones para tantas cosas personalizadas que realmente me pregunto si no hay funciones para leer imágenes)? O qué es? (Debe estar disponible en la instalación estándar de MacOSX y en las versiones más recientes en las distribuciones de Linux.)Python: forma predeterminada/común de leer imágenes png

Si no hay ninguno, ¿cuál es la lib más común?

Muchos resultados de búsqueda me insinúan a la Biblioteca de imágenes de Python. Si este es un Python-lib bien conocido para leer imágenes, ¿por qué no está incluido en Python?

+3

No todo debe incluirse en la biblioteca estándar. De hecho, ya hay demasiado. –

Respuesta

23

No, no hay módulos en la biblioteca estándar para leer/escribir/procesar imágenes directamente. Pero la biblioteca más común podría ser PIL (Python Imaging Library). Muchos proyectos no están incluidos en la biblioteca estándar porque son 1) totalmente opcionales y 2) no pueden ser mantenidos por los pocos desarrolladores básicos de Python.

+1

Python Imaging Library rocks. – Mark

+1

Bueno, realmente no veo por qué tiene expresiones regulares, descomprimir, http, imap, ftp y todas esas cosas (no me malinterpreten: estoy muy contento de que todo esté allí), pero no funciones de carga de imágenes simples. Pero está bien, ¡gracias por esa información! – Albert

+1

Lennart Regebro ya lo señaló: la biblioteca estándar de Python contiene demasiadas cosas que 1) no se usa, 2) no pertenece a la biblioteca estándar o 3) es de calidad cuestionable. Esperemos que haya más limpieza en Python 4.x ... – AndiDog

0

El PIL sugerido no admite PNG entrelazados. Puede ser bastante molesto tratar con muchos PNG de diferentes orígenes. Es posible abrirlos, pero solo puede leer la información del encabezado de ellos, todas las demás operaciones fallan.

+0

Entonces, ¿qué otra sugerencia tienes? ¿Cuál es la mejor lib? – Albert

+2

Bueno, no he usado ninguna otra biblioteca de gráficos además de PIL en python, pero [pypng] (http://code.google.com/p/pypng/) dice que admite todo tipo de archivos PNG. Es una python pura, por lo que puede no ser la forma más rápida de abrir PNG y también tiene una API bastante limitada. Supongo que podría usarse para cargar PNG entrelazados en PIL. Puede comprobar si un PNG está entrelazado en el dict de "información" de la clase de imagen Además de que también hay enlaces de Python para [ImageMagick] (http://www.imagemagick.org/script/api.php) – user266458

2

Llegar tarde a la fiesta, sugeriría fuertemente uno de la biblioteca Python interfaces to the ImageMagick (Varita funcionó bien en mis pruebas, Sabré más pronto ...)

ImageMagick es una biblioteca más potente y también muy bien un estándar de facto en muchos idiomas. Apelando a una base más amplia, también tienen una base de desarrolladores más amplia como resultado.

Cuestiones relacionadas