stringtranslate.com

ILM

Interleaved Bitmap ( ILBM ) es un formato de archivo de imagen que cumple con el estándar Interchange File Format (IFF). El formato se originó en la plataforma Amiga y, en los sistemas compatibles con IBM , los archivos en este formato o en el formato PBM (Planar Bitmap) relacionado se encuentran normalmente en juegos de finales de los años 1980 y principios de los años 1990 que eran ports de Amiga o cuyos recursos gráficos fueron diseñados en máquinas Amiga. [ cita requerida ]

Una característica distintiva del formato es que almacena mapas de bits en forma de planos de bits intercalados , lo que le da al formato su nombre; esto refleja la forma en que el hardware gráfico de Amiga lee de forma nativa los datos gráficos de la memoria. Se admite Packbits , una forma simple de compresión para hacer que los archivos ILBM sean más compactos. [4]

En Amiga, estos archivos no están asociados a una extensión de archivo en particular , aunque cuando comenzaron a usarse en sistemas PC donde se usan extensiones sistemáticamente, emplearon una extensión .lbm o, ocasionalmente, .pbm . [ cita requerida ]

Formato de archivo

ILBM es una implementación del formato de archivo IFF que consiste en una serie de fragmentos consecutivos, cuyo orden puede variar hasta cierto punto. Cada fragmento tiene una función diferente y tiene el mismo formato básico. Esto significa que un programa no tiene que leer o decodificar todos los fragmentos de un archivo, sino solo aquellos con los que quiere trabajar o los que puede entender. [4]

Los archivos ILBM suelen contener suficiente información para que un programa de edición de imágenes pueda visualizarlos, incluidas las dimensiones de la imagen, la paleta de colores y los datos de píxeles. Algunos archivos se diseñaron para que funcionaran como paletas para programas de pintura (los datos de píxeles se dejaron en blanco) o para fusionarse con otra imagen. Esto los hace mucho más flexibles, pero también mucho más complejos que otros formatos como BMP. [ cita requerida ]

En el caso de los ILBM, el fragmento BMHD (Bit Map HeaDer) y cualquier otro fragmento "vital" deben aparecer antes del fragmento BODY . Cualquier fragmento que aparezca después de BODY se considera "adicional" y muchos programas lo dejarán sin leer ni modificar. [4]

BMHD: encabezado de mapa de bits

El fragmento BMHD especifica cómo se debe mostrar la imagen y, por lo general, es el primer fragmento dentro del FORM . No solo define la altura y el ancho de la imagen, sino también dónde se dibuja en la pantalla, cómo se muestra en varias resoluciones de pantalla y si la imagen está comprimida. El contenido de este fragmento es el siguiente: [4]

CUERPO: Datos de la imagen

El fragmento BODY suele ser el último fragmento de un archivo, [4] y el más grande [ cita necesaria ] .

En los archivos ILBM, el fragmento BODY almacena los datos reales de la imagen como planos de bits intercalados (y máscara opcional) por fila. Los planos de bits aparecen primero del 1 al n, seguidos del plano de máscara. Si la imagen no está comprimida, cada línea estará formada por (width + 15) / 16valores de 16 bits (es decir, un bit por píxel, redondeado al múltiplo de 16 bits más cercano). Si está comprimida, cada línea se comprime individualmente y siempre tiene una longitud de múltiplo de 16 bits cuando se comprime. [4]

En los archivos PBM, el fragmento BODY es más simple, ya que sin comprimir es solo un flujo continuo de bytes que contienen datos de imagen. [ cita requerida ]

Compresión

Si se comprime una imagen, cada fila de datos (pero no cada plano de bits) se comprime individualmente, incluidos los datos de máscara, si están presentes. La compresión es una variedad de la compresión RLE que utiliza indicadores. Se puede decodificar de la siguiente manera: [4]

Para la rutina de compresión, es mejor codificar una repetición de 2 bytes como una repetición, excepto cuando esté precedida y seguida por una repetición literal, en cuyo caso es mejor fusionar las tres en una repetición literal. Codifique siempre las repeticiones de más de 3 bytes como repeticiones. [4]

CAMG: Modo Amiga

Un fragmento CAMG es específico para la computadora Commodore Amiga. Almacena un "modo de ventana gráfica" LARGO. Esto le permite especificar modos de visualización de Amiga como "campo de juego dual" y "mantener y modificar". No es sorprendente que sea poco común fuera de los juegos de Amiga. [ cita requerida ]

Si necesita convertir o mostrar archivos que puedan contener fragmentos CAMG significativos, consulte las «Notas sobre cómo trabajar con archivos ILBM» a continuación.

CMAP: Paleta

El fragmento CMAP contiene la paleta de la imagen y consta de valores RGB de 3 bytes para cada color utilizado. Cada byte tiene un valor entre 0 y 255 inclusive. El fragmento tiene 3 × numColoursuna longitud de bytes. La cantidad de colores en la paleta será 2 ^ numBitplanes. Este fragmento es opcional y se utilizará una paleta predeterminada si no está presente. Es posible tener menos entradas de las esperadas (por ejemplo, 7 colores para un mapa de bits de 4 planos de "16 colores"). Recuerde que si tiene una cantidad impar de colores, según la especificación IFF, el fragmento se rellenará con un byte para que tenga una cantidad par de bytes de longitud, pero el byte de relleno no se incluye en el campo de longitud del fragmento. [4]

CRNG: Gama de colores

El fragmento de rango de color es "no estándar". Lo utiliza el programa Deluxe Paint de Electronic Arts para identificar un rango contiguo de registros de color o un "rango de tonos" y ciclos de color. Puede haber cero o más fragmentos CRNG en un archivo ILBM, pero todos deben aparecer antes del fragmento BODY . Deluxe Paint normalmente escribe 4 fragmentos CRNG en un ILBM cuando el usuario le pide que "Guarde la imagen". [4]

CCRT: Ciclo de color

El programa Graphicraft de Commodore utiliza CCRT para el rango y el tiempo de ciclo de color . Este fragmento contiene una estructura CycleInfo. Al igual que CRNG, es un fragmento no estándar. [4]

Los datos son similares a un fragmento CRNG . Un programa probablemente solo usaría uno de estos dos métodos para expresar datos de ciclo de color. Podrías escribir ambos si deseas comunicar esta información tanto a DeluxePaint como a Graphicraft. [4]

DEST: Combinación de planos de bits

La propiedad opcional DEST es una forma de controlar cómo se dispersan cero o más planos de bits de origen en una imagen de destino más profunda. Algunos lectores pueden ignorar DEST. [4]

El número de bits de profundidad de orden bajo en planePick, planeOnOff y planeMask se corresponde uno a uno con los planos de bits de destino. El bit 0 con el plano de bits 0, etc. Se deben ignorar todos los bits de orden superior. [4]

Los bits "1" en planePick significan "colocar el siguiente bitplane de origen en este bitplane", por lo que la cantidad de bits "1" debe ser igual a numPlanes. Los bits "0" significan "colocar el bit correspondiente de planeOnOff en este bitplane". [4]

Bits en la puerta planeMask que escriben en el plano de bits de destino: los bits "1" significan "escribir en este plano de bits", mientras que los bits "0" significan "dejar este plano de bits solo". El caso normal (sin fragmento DEST ) es equivalente a planePick = planeMask = (2 ^ numPlanes) - 1. [4]

Recuerde que los números de color se forman mediante píxeles en el mapa de bits de destino (planos de profundidad deep) no en el mapa de bits de origen (numPlanes plans deep). [4]

GRAB: Punto de acceso

El fragmento GRAB opcional ubica un "mango" o "punto de acceso" de la imagen en relación con su esquina superior izquierda, por ejemplo, cuando se utiliza como cursor de ratón o como "pincel". Es opcional. [4]

SPRT: orden Z

El fragmento SPRT indica que una imagen está destinada a ser un sprite. Por lo tanto, debe tener un plano de máscara o un color transparente y no debe ocupar toda la pantalla. La forma en que se maneja esto depende del programa que utiliza la imagen. Los únicos datos almacenados aquí son el orden de los sprites, que muchos programas utilizan para colocarlos en primer plano (un sprite de orden 1 aparece detrás de uno de orden 0, etc.). Es opcional. [4]

PEQUEÑO: Miniatura

El fragmento TINY contiene una pequeña imagen de vista previa para varios programas de gráficos, incluido Deluxe Paint. Está comprimido y tiene un formato similar al fragmento BODY . [ cita requerida ]

Notas para trabajar con ILBM

Mapas de colores

A veces, un archivo ILBM contiene solo un mapa de colores y ningún dato de imagen. A menudo se utiliza para almacenar una paleta de colores que se puede aplicar a una imagen por separado. En este caso, el fragmento BODY debe estar vacío y el campo numPlanes en el fragmento BMHD será 0. [4]

Imágenes profundas

Algunos archivos ILBM contienen información de "color verdadero" en lugar de colores indexados. Estos archivos denominados "imágenes profundas" no tienen fragmentos CMAP y suelen tener 24 o 32 planos de bits. El orden estándar de los planos de bits colocará primero el bit menos significativo del componente rojo: [4]

R0 R1 R2 R3 R4 R5 R6 R7 G0 G1 G2 G3 G4 G5 G6 G7 B0 B1 B2 B3 B4 B5 B6 B7

Si hay planos de 32 bits, los últimos 8 planos de bits serán un canal alfa:

R0 R1 ... R7 G0 ... G7 B0 ... B6 B7 A0 A1 A2 A3 A4 A5 A6 A7

Una imagen que no contiene un mapa de color y solo 8 planos de bits puede ser una imagen en escala de grises:

Yo, yo ...

Extra medio brillante

Si el archivo ILBM contiene un fragmento CAMG en el que se ha establecido el bit 7 (es decir, 0x80 en hexadecimal), el archivo espera hacer uso del modo EHB (Extra Half-Brite) del chipset Amiga. El mapa de color no tendrá más de 32 entradas, pero la imagen tendrá 6 planos de bits. El plano de bits más significativo debe considerarse como un indicador; cuando no se establece, utilice los 5 bits inferiores como índice en el mapa de color como de costumbre. Cuando se establece el indicador, utilice los 5 bits inferiores como índice en el mapa de color, pero el color real que se utilizará debe ser la mitad de brillante, lo que se puede lograr desplazando los componentes RGB del color un bit a la derecha. Alternativamente, cree un mapa de color con 64 entradas y copie las 32 entradas inferiores en la mitad superior, convirtiéndolas a la mitad de brillo; luego, utilice los 6 planos de bits como índice de color. [4]

Las imágenes PBM no pueden existir en modo extra half-brite. [ cita requerida ]

Mantener y modificar

Si el archivo ILBM contiene un fragmento CAMG en el que está establecido el bit 11 (es decir, 0x800 en hexadecimal), el archivo espera hacer uso del modo HAM (Hold-And-Modify) del chipset Amiga. En el formato HAM6, el mapa de color tendrá hasta 16 entradas, pero la imagen tendrá 6 (o posiblemente 5 planos de bits). En el formato HAM8, el mapa de color tendrá hasta 64 entradas, pero la imagen tendrá 8 (o posiblemente 7 planos de bits). [4]

Los dos últimos planos de bits (si un número impar de planos de bits supone un plano de bits adicional que siempre es 0) son indicadores de control que indican cómo utilizar los primeros 4 (o 6) planos de bits. [4]

Si el primer píxel de una línea de escaneo es un píxel de modificación, modifique y utilice el color del borde de la imagen. [4]

Tenga en cuenta que, al utilizar 4 bits para modificar un componente de color, debe utilizar los 4 bits en los 4 bits superiores del componente Y en los 4 bits inferiores (para evitar reducir la gama cromática general). Al utilizar 6 bits, esto es menos importante, pero puede colocar los 2 bits más significativos de los bits de modificación en los dos bits menos significativos del componente de color. [4]

Las imágenes PBM no pueden existir en modo de retención y modificación. [ cita requerida ]

Utilidades

La mayoría de las utilidades que funcionan con archivos ILBM y PBM son bastante antiguas, como MacPaint o Deluxe Paint . IrfanView permite ver archivos, es gratuito para uso no comercial y puede funcionar en Linux. [ cita requerida ] Netpbm puede convertir imágenes de ILBM a su propio formato PPM [5] y viceversa. [6] El editor de gráficos de pixel art GrafX2 inspirado en Deluxe Paint puede cargar y guardar archivos ILBM, pero está limitado a un máximo de 256 colores, por lo que las imágenes HAM o ILBM de 24 bits no mostrarán todos los colores. ImageMagick y GraphicsMagick también pueden mostrar y convertir imágenes ILBM si están instaladas las utilidades ilbmtoppm y ppmtoilbm de Netpbm.

Notas

En la serie de juegos Commander Keen Dreams, se utilizan imágenes ILBM independientes comprimidas para las pantallas de título, pero el juego no lee la mayoría de los fragmentos de ILBM. Esto se debe a que las imágenes se editaron en DeluxePaint y luego se importaron directamente a los archivos del juego. [ cita requerida ]

Véase también

Referencias

  1. ^ Jerry Morrison (14 de enero de 1985). «EA IFF 85: estándar para archivos de formato de intercambio». Electronic Arts . Consultado el 6 de marzo de 2014 .
  2. ^ Jerry Morrison (17 de enero de 1986). «Mapa de bits intercalado IFF «ILBM»». Electronic Arts . Archivado desde el original el 13 de junio de 2014 . Consultado el 6 de marzo de 2014 .
  3. ^ James D. Murray; William vanRyper (abril de 1996). Enciclopedia de formatos de archivos gráficos, segunda edición . O'Reilly . ISBN 1-56592-161-5. Recuperado el 27 de febrero de 2014 .
  4. ^ abcdefghijklmnopqrstu vwxyz "Mapa de bits intercalado IFF ILBM". 8 de junio de 2012. Consultado el 30 de julio de 2018 .
  5. ^ Jef Poskanzer; Ingo Wilken (12 de noviembre de 2014). "ilbmtoppm" . Consultado el 13 de junio de 2019 .
  6. ^ Jef Poskanzer; Ingo Wilken (28 de junio de 2015). "ppmtoilbm" . Consultado el 13 de junio de 2019 .

Enlaces externos