2010-11-16 16 views
34

Mirando a través de PIL (y relacionado con this question), ¿dónde puedo obtener una lista completa de modos de imagen? Veo "RGB", "RGBX", mi código tiene "BGRX" de alguna manera a pesar de que no se menciona en los documentos PIL que puedo ver. ¿Cómo puedo ver cuál es cuál, qué PIL admite y qué modos apropiados seleccionar al interactuar con las llamadas a la API de Windows, por ejemplo?Lista de "modos" de imágenes

Básicamente, sé muy poco acerca de los modos de imagen y me gustaría aprender más que solo las letras para hacer que funcione mágicamente.

Respuesta

23

Como dice en el Pillow documentation (y como también se dice en el anterior PIL documentation), debe consultar el archivo Unpack.c. Encontrará la lista cerca del final del archivo.

Unpack.c de la rama principal actual de Almohada: https://github.com/python-pillow/Pillow/blob/master/src/libImaging/Unpack.c

Unpack.c de la versión final de PIL: http://svn.effbot.org/public/tags/pil-1.1.7/libImaging/Unpack.c

16-bit BGR aparece como "BGR;16" y crea una salida "RGBX".

+0

ah bien, en realidad logré encontrar el archivo pero no encontré esa tabla de búsqueda. – Claudiu

+0

Maldita sea, finalmente entendí algo que me había desviado por años. Los modos enumerados en la segunda columna de la tabla en 'Unpack.c' no son lo que los documentos llaman * modos * sino más bien lo que llaman * modos sin formato *. La distinción es que * los modos sin formato * son tipos de archivos que Pillow puede analizar, mientras que * los modos * son tipos que el parámetro 'modo' de varias funciones de Pillow entiende y que puede convertir a' .convert() '. Los comentarios sobre la tabla vinculada dejan claro que estos no son los mismos, pero ya se me habían pasado por la cabeza. –

+0

Ahora que lo entiendo, me parece que esta pregunta se beneficiaría seriamente de una respuesta que enlace a * both * https://pillow.readthedocs.io/en/3.0.x/handbook/concepts.html#modes (la lista de * modos *) y 'Unpack.c' (la lista de * modos sin procesar *) y explica la diferencia entre ellos. Otra marca, ¿estarías dispuesto a hacer esto a través de una edición? Si no, pero te sentirás cómodo conmigo haciéndolo, házmelo saber y lo cumpliré. De lo contrario, probablemente solo publique una respuesta de la competencia. –

Cuestiones relacionadas