Você está na página 1de 3

Ap endice - El est andar Netpbm

20 de febrero de 2014

1.

Introducci on

El est andar Netpbm describe una serie de formatos para im agenes sencillo y ampliamente soportado por diversos programas de edici on y visualizaci on. Este est andar describe m as de 8 formatos pero este trabajo solamente describe los formatos pbm, pgm y ppm en sus dos versiones binaria y en texto plano. Netpbm viene de Network Portable Bit Map, es decir, un formato de mapa de bits portable para Internet y las primeras versiones aparecieron a nales de los 80s de la mano de Jef Poskanzer. La simpleza del formato permite que pueda enviarse por e-mail sin que esto genere problemas con la codicaci on de caracteres. B asicamente consiste en un encabezado en formato ASCII m as un raster1 , es decir una sucesi on de bytes que interpretados como una cuadr cula forman una imagen. El encabezado contiene informaci on de forma que este raster de bytes pueda interpretarse de la forma adecuada. Como se mencion o anteriormente, el est andar especica m as de un formato. El formato pbm es de im agenes en blanco y negro, el formato pgm es un mapa de bits en tonos de gris y el nalmente el formato ppm es para im agenes color. Cada uno de los pixels de la imagen guardada en el archivo puede representarse en formato binario (es decir escribiendo el o los bytes que representan la intensidad de cada pixel) o en formato ASCII (escribiendo una cadena de caracteres ASCII que representa la intensidad de un pixel). El primer formato es conocido como RAW o binario, mientras que el segundo formato es conocido plain o de texto y esto vale para los tres formatos, es decir que existen archivos en formato pbm RAW y de texto, pgm RAW y de texto y ppm RAW y de texto. A continuaci on se describen los tres formatos y cada una de sus variantes.

2.

El encabezado
El encabezado de los formatos es muy similar. En detalle, consiste de Magic Number: Dos bytes que indican que formato y variante se va a utilizar. El Magic Number puede ser cualquiera de: 1. "P1": pbm en modo texto 2. "P2": pgm en modo texto 3. "P3": ppm en modo texto 4. "P4": pbm en modo binario 5. "P5": pgm en modo binario 6. "P6": ppm en modo binario Whitespace: Una cantidad arbitraria de espacios en blanco (SP), tabulaciones (TAB), retornos de carro (CR), n de l nea (LF) o cualquier otro car acter con el cual la funci on est andar de C isspace() no devuelva 0. Width: El ancho de la imagen en pixels, en formato ASCII en base decimal. Whitespace.

1 http://es.wikipedia.org/wiki/Imagen

de mapa de bits

Height: El alto de la imagen en pixels, en formato ASCII en base decimal. Whitespace. Maxval: El m aximo valor de intensidad de un pixel, en formato ASCII en base decimal. Debe ser un n umero mayor que cero y menor que 65535. Este valor indica la profundidad de bits de la imagen. Si Maxval es menor que 256 el valor de intensidad de un pixel se almacena en un byte. Si es mayor se almacena en dos bytes, en formato little endian, es decir, el byte m as signicativo primero. Si la imagen es pbm este campo no tiene sentido y no aparece en el encabezado (es decir, cuando el Magic Number es "P1" o "P4"). Si la imagen es en color, Maxval representa el valor m aximo de la intensidad de cada canal, rojo, verde o azul. Un solo car acter Whitespace, generalmente un "\n". Adem as, todo texto (antes del u ltimo Whitespace) que comience con el car acter "#" y que nalice con un retorno de carro (CR, el car acter "\r") o n de linea (LF, el car acter "\n") se considera un comentario y debe ignorarse. El contenido del resto del archivo depende del formato y se detalla en las secciones siguientes.

3.

El formato pbm en modo binario

Inmediatamente despu es del encabezado, siguen una sucesi on de Height las de arriba hacia abajo. Cada la contiene Width bits con tantos bits sin importancia como para completar el u ltimo byte de cada la, si Witdh no fuera m ultiplo de 8 bits. Cada bit representa un pixel: 1 negro y 0 blanco. Los pixels son cuadrados y contiguos. El orden de los bits es el m as signicativo primero y el menos signicativo por u ltimo.

4.

El formato pbm en modo texto

El formato en modo texto es similar al binario, pero a diferencia de este u ltimo, los pixels se representan en formato ASCII. As , inmediatamente despu es del encabezado, sigue una sucesi on de Height las, donde cada la contiene Width bytes con el valor ASCII 0.o 1(Blanco o Negro, respectivamente). Los espacios en blanco se ignoran. Las las son horizontales y las columnas verticales. El siguiente ejemplo es una imagen v alida en formato pbm en modo texto. P1 # feep.pbm 24 7 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 1 1 1 1 1 0

0 1 0 1 0 1 0

0 1 0 1 0 1 0

0 1 0 0 0 1 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 1 1 1 1 1 0

0 1 0 1 0 1 0

0 1 0 1 0 1 0

0 1 0 0 0 1 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 1 1 1 1 1 0

0 1 0 1 0 0 0

0 1 0 1 0 0 0

0 1 1 1 0 0 0

0 0 0 0 0 0 0

5.

El formato pgm en modo binario

Inmediatamente despu es del encabezado, siguen una sucesi on de Height las de arriba hacia abajo. Cada la contiene Width valores de gris entre 0 y Maxval donde 0 es negro y Maxval es blanco. Si Maxval es menor que 256, cada valor de gris se representa con un byte en binario sin signo. Si Maxval es mayor o igual que 256 se representa con dos bytes en binario sin signo, con el byte m as signicativo primero.

6.

El formato pgm en modo texto

El formato en modo texto es similar al binario, pero a diferencia de este u ltimo, los pixels se representan en formato ASCII. As , inmediatamente despu es del encabezado, sigue una sucesi on de Height las, donde cada la contiene Width valores en ASCII decimal entre 0 y Maxval, separados por espacios. Las las son horizontales y las columnas verticales. El siguiente ejemplo es una imagen v alida en formato pgm en modo texto. P2 # feep.pgm 24 7 15 0 0 0 0 0 3 3 3 0 3 0 0 0 3 3 3 0 3 0 0 0 3 0 0 0 0 0 0

0 3 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 7 7 7 7 7 0

0 7 0 7 0 7 0

0 7 0 7 0 7 0

0 7 0 0 0 7 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 11 11 11 11 11 0 0 0 11 11 11 0 11 0 0 0 11 11 11 11 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 15 15 15 15 15 0 0 15 15 15 15 15 15 0 0 0 15 0 0 0 0 0 0 0

0 0 0 0 0 0 0

7.

El formato ppm en modo binario

Inmediatamente despu es del encabezado, siguen una sucesi on de Height las de arriba hacia abajo. Cada la contiene Width ternas cada una de las cuales representa un pixel. Cada valor de la terna representa la intensidad de color de cada uno de los canales rojo, verde y azul, en ese orden. Cada intensidad var a entre 0 y Maxval donde 0 es negro y Maxval es rojo puro, verde puro o azul puro, dependiendo de la posici on en la terna. Cada intensidad se codica en uno o dos bytes, dependiendo del valor de Maxval y de manera an aloga a como se hace en el formato pgm en modo binario.

8.

El formato ppm en modo texto

El formato en modo texto es similar al binario, pero a diferencia de este u ltimo, los pixels se representan en formato ASCII. As , inmediatamente despu es del encabezado, sigue una sucesi on de Height las, donde cada la contiene Width ternas de valores en ASCII decimal entre 0 y Maxval, separados por espacios.as las son horizontales y las columnas verticales. El siguiente ejemplo es una imagen v alida en formato ppm en modo texto. P3 # feep.ppm 4 4 15 0 0 0 0 0 0 0 0 0 15 0 15

0 0 0 15 0 0 0 0

0 7 0 0

0 0 0 0 0 15 0 0

0 0 7 0

15 0 0 0

0 15 0 0 0 0 0 0

9.

Referencias
http://netpbm.sourceforge.net/doc/pbm.html http://netpbm.sourceforge.net/doc/pgm.html http://netpbm.sourceforge.net/doc/ppm.html

Você também pode gostar