Mostrar/Ocultar TOC

Tabla de Contenidos del Libro
Prefacio
Capítulo 1: Introducción
Capítulo 2: Fundamentos
Capítulo 3: Mapas de Bits
Capítulo 4: Archivos Vectoriales
Capítulo 5: Metaarchivos
Capítulo 6: Dependencias de Plataforma
Capítulo 7: Conversión de Formatos
Capítulo 8: Trabajando con Archivos Gráficos  
Capítulo 9: Compresión
Capítulo 10: Multimedia
Formato: Adobe Illustrator
Formato: Adobe Photoshop
Formato: Atari ST
Formato: AutoCAD DXF
Formato: Autodesk 3D Studio
Formato: BDF
Formato: BRL-CAD
Formato: BUFR
Formato: CALS Raster
Formato: CGM
Formato: CMU
Formato: DKB
Formato: Dore Raster
Formato: DPX
Formato: Dr. Halo
Formato: DVM Movie
Formato: PostScript Encapsulado
Formato: FaceSaver
Formato: FAX
Formato: FITS
Formato: FLI
Formato: GEM Raster
Formato: GEM VDI
Formato: GIF
Texto en Inglés de Este Formato de Archivo
Imagen del CD-ROM de la 2° Edición
Imagen del CD-ROM de la 1° Edición (Torrent y HTTPS)
Versión Hipertexto del CD-ROM de la 2° Edición (En Inglés)
Versión Hipertexto del CD-ROM de la 2° Edición (En Ruso)

Formato de Archivo — GEM Raster

Formato de Archivo — GEM Raster


NOMBRE: GEM Raster
TAMBIÉN CONOCIDO COMO: IMG
TIPO: Mapa de Bits
COLORES: 16,384
COMPRESIÓN: RLE, descomprimido
TAMAÑO MÁXIMO DE IMAGEN: 64Kx64K
MÚLTIPLES IMÁGENES POR ARCHIVO: No
FORMATO NUMÉRICO: Big Endian
ORIGINADOR: Digital Research, ahora parte de Novell
PLATAFORMA: GEM, MS-DOS, Atari ST
APLICACIONES SOPORTADAS: DR Paint, DR Doodle, Publishers Paintbrush, y aplicaciones basadas en GEM. Versiones del Ventura Publiser basado en MS-DOS fueron distribuidas sujetas a GEM que sirvieron principalmente para proveer servicios de GUI a la aplicación. Muchos programas en el Atari ST.
ESPECIFICACIÓN EN CD: Sí (para Atari)
CÓDIGO EN CD: No
IMÁGENES EN CD:
MIRA TAMBIÉN: Ninguno
UTILIZACIÓN: Usado primariamente en entornos de aplicación basados en GEM.
COMENTARIOS: Un formato pobremente documentado (en el sentido de que es difícil encontrar documentación) en amplio uso solo en la plataforma Atari ST. Carece de un esquema de compresión superior y soporte para información de color incluida. Hay al menos dos versiones en existencia.




Resumen

GEM Raster (también conocido como IMG) es el formato de almacenamiento nativo para el Graphical Environment Manager (GEM), desarrollado y comercializado por Digital Research. GEM se abrió camino en el mercado a través de ofertas de paquetes OEM, versiones de tiempo de ejecución especiales adjuntas con productos, y como el entorno operativo nativo en al menos un sistema, el Atari ST. Las imágenes GEM han sido importantes en la comunidad de publicación de PC de escritorio debido a las ofertas de paquetes entre Digital Research y los creadores de Ventura Publisher, una aplicación de publicación de escritorio ampliamente usada.

Si bien GEM era un contendiente en las guerras de GUI hace algunos años atrás, las fortunas de Digital Research en esta área decayeron, y la compañía fue comprada eventualmente por Novell. Antes de esto, sin embargo, GEM se distribuía por un número de fabricantes de hardware de PC junto con sus sistemas y por lo tanto disfrutaba una cierta relevancia. Las imágenes de rastro GEM pueden ser a color, de escala de grises, o blanco y negro y siempre se leen y escriben en formato Big Endian. Nota que muchos formatos de archivo diferentes usan la extensión .IMG, un hecho que causa confusión en algunas aplicaciones diseñadas solo para leer archivos de rastro GEM (IMG).



Organización del Archivo

Como muchos otros formatos de mapa de bits simples, los archivos GEM raster comienzan con una cabecera de longitud fija, seguida por datos de mapa de bits.



Detalles del Archivo

Los archivos de rastro GEM usan una cabecera de 16 o 18 bytes en el siguiente formato:

typedef struct _GemRaster
{
WORD   Version;         /* Versión de Archivo de Imagen (Siempre 1h) */
WORD   HeaderLength;    /* Tamaño de Cabecera en WORDs */
WORD   NumberOfPlanes;  /* Número de Planos */
WORD   PatternLength;   /* Longitud de Definición de Patrón */
WORD   PixelWidth;      /* Anchura de Pixel en Micros */
WORD   PixelHeight;     /* Altura de Pixel en Micros */
WORD   ScanLineWidth;   /* Anchura de Imagen en Pixeles */
WORD   NumberOfLines    /* Altura de Imagen en Scan Lines */
WORD   BitImageFlag;    /* Bandera de color gris GrayColor Multi-plano */
} GEMHEAD;

Version siempre tiene un valor de 1.

HeaderLength es ya sea 8 o 9; si el valor es 8, no hay campo BitImageFlag en la cabecera.

NumberOfPlanes contiene el número de bits por pixel del dispositivo de fuente de imagen (por ejemplo un escáner). Este valor típicamente es 1.

PatternLength contiene un valor de cuenta de corrida, el cual usualmente es 1. Cualquier código de patrón encontrado en los datos de imagen codificados se repite este número de veces.

PixelHeight y PixelWidth son el tamaño del pixel en micrones y a menudo son 85 (55h), que corresponde a 1/300 de pulgada, o 300 dpi. La escala de la imagen puede determinarse también al usar estos valores de tamaño de pixeles.

ScanLineWidth y NumberOfLines describen el tamaño de la imagen en líneas y pixeles.

BitImageFlag indica si una imagen multiplano es a color o de escala de grises. Si el campo BitImageFlag está presente en la cabecera (indicado por un valor de 9 en el campo HeaderLength) y los datos de imagen contienen múltiples planos (indicado por un valor de 2 o superior en el campo NumberOfPlanes), un valor de 0 indica datos de imagen a color y un valor de 1 indica datos de imagen de escala de grises. Si una imagen multiplano tiene una cabecera de 8 campos, entonces la imagen se despliega en escala de grises desde una paleta fija de 16 colores por defecto. Si la imagen tiene una cabecera de 9 campos y solo un plano, el valor en el campo BitImageFlag se ignora. BitImageFlag se usaba por versiones basadas en GEM de Ventura Publisher.

La paleta GEM de 16 colores contiene los siguientes valores RGB:

3f, 3f, 3f
3f, 00, 00
00, 3f, 00
3f, 3f, 00
00, 00, 3f
3f, 00, 3f
00, 3f, 3f
2b, 2b, 2b
15, 15, 15
2b, 00, 00
00, 2b, 00
2b, 2b, 00
00, 00, 2b
2b, 00, 2b
00, 2b, 2b
00, 00, 00

La paleta estándar de escala de grises GEM de 8 bits consiste de los siguientes valores:

ff 7f bf 3f df 5f 9f 1f ef 6f af 2f cf 4f 8f 0f
f7 77 b7 37 d7 57 97 17 e7 67 a7 27 c7 47 87 07
fb 7b bb 3b db 5b 9b 1b eb 6b ab 2b cb 4b 8b 0b
f3 73 b3 33 d3 53 93 13 e3 63 a3 23 c3 43 83 03
fd 7d bd 3d dd 5d 9d 1d ed 6d ad 2d cd 4d 8d 0d
f5 75 b5 35 d5 55 95 15 e5 65 a5 25 c5 45 85 05
f9 79 b9 39 d9 59 99 19 e9 69 a9 29 c9 49 89 09
f1 71 b1 31 d1 51 91 11 e1 61 a1 21 c1 41 81 01
fe 7e be 3e de 5e 9e 1e ee 6e ae 2e ce 4e 8e 0e
f6 76 b6 36 d6 56 96 16 e6 66 a6 26 c6 46 86 06
fa 7a ba 3a da 5a 9a 1a ea 6a aa 2a ca 4a 8a 0a
f2 72 b2 32 d2 52 92 12 e2 62 a2 22 c2 42 82 02
fc 7c bc 3c dc 5c 9c 1c ec 6c ac 2c cc 4c 8c 0c
f4 74 b4 34 d4 54 94 14 e4 64 a4 24 c4 44 84 04
f8 78 b8 38 d8 58 98 18 e8 68 a8 28 c8 48 88 08
f0 70 b0 30 d0 50 90 10 e0 60 a0 20 c0 40 80 00

Los datos de imagen en los archivos de rastro GEM siempre se codifican usando un esquema de codificación run-length (RLE) simple. Los datos siempre se codifican un byte a la vez y siempre tienen ocho bits de datos de imagen por pixel. Por esta razón, los scan lines siempre son múltiplos de ocho pixeles en anchura y se rellenan cuando sea necesario. Si los datos de imagen contienen dos o más bits por pixel, entonces la imagen tendrá múltiples planos de bits.

Hay cuatro tipos de códigos en el formato RLE de rastro GEM: códigos de replicación vertical, códigos de corrida literal, códigos de patrón, y códigos de corrida codificada. Para complicar este esquema RLE está el hecho de que cada uno de estos cuatro códigos tiene tamaño diferente, como se muestra a continuación:

Código de Replicación Vertical 00 00 FF <Cuenta de Corrida>
Código de Corrida Literal 80 <Cuenta de Corrida 1 a 7F> <'Cuenta de Corrida' Bytes>
Código de Patrón 00 <Longitud de Patrón>
Código de Corrida Negra <MSB = 1> <7 LSB = RunCount>
Código de Corrida Blanca <MSB = 0> <7 LSB = RunCount>

Un código de replicación vertical contiene los valores 00h 00h FFh, seguidos por una cuenta de un byte. La cuenta es el número de veces a repetir la línea que está a punto de decodificarse. Una cuenta de uno indica dos líneas idénticas consecutivas. Un código de replicación vertical solo puede aparecer al inicio de un scan line. Si un código de replicación no está presente al inicio de un scan line, la línea no se repite.

Las corridas literales son líneas contiguas de pixeles que no se codifican. Estas se escriben al flujo de datos codificados a medida que aparecen en el mapa de bits. Las corridas literales usualmente aparecen en datos de imagen codificados porque la compresión de datos tuvo poco efecto en los datos de pixel, y no era eficiente codificar los pixeles como una corrida. Un código de corrida literal comienza con el valor de byte 80h y se sigue por un byte que mantiene el valor de cuenta. Siguiendo la cuenta está un número de bytes igual al valor de cuenta que debería copiarse literalmente desde los datos codificados a los datos decodificados.

Un código de patrón comienza con el byte 00h y es seguido por un byte que contiene la longitud del patrón. Esa longitud es seguida por el patrón mismo, replicado el número de veces especificado por el campo PatternLength en la cabecera. Los códigos de patrón son similares a los códigos de corrida literal en que los datos que contienen no están comprimidos realmente en los datos de imagen codificados.

Los códigos de corrida codificada solo contienen corridas ya sea de pixeles blancos o negros y son por mucho los más numerosos de los códigos en los datos de imagen RLE del IMG. Las corridas blancas y negras se codifican como un paquete de 1 byte. Los paquetes de corrida codificados nunca son 00h u 80h en valor. Estos valores se reservan para marcar el inicio de códigos de replicación vertical, códigos de patrón, y códigos de corrida literal. Si un byte se lee y no es igual a 00 u 80h, el bit de mayor peso indica el color de la corrida. Si el bit de mayor peso es 1, todos los pixeles en la corrida están puestos a 1 (negro). Si el bit de mayor peso es 0, los pixeles en la corrida están puestos a 0 (blanco). Los 7 bits de menor peso en la corrida codificada son el número de bits en la corrida. La corrida puede contener de 1 a 127 bits.

Si una imagen contiene múltiples planos, cada plano se codifica como la siguiente scan line consecutiva de datos. Un scan linde de una imagen de cuatro planos se codifica como cuatro scan lines de datos. El orden de los planos son valores de rojo, verde, azul e intensidad.

El siguiente segmento de un scan line codificado:

   00 00 FF 05 07 8A 02 80 04 2A 14 27 C9 00 03 AB CD EF

representa un código de replicación vertical de cinco scan lines, una corrida de siete bytes blancos (56 pixeles), una corrida de 10 bytes negros (80 pixeles), una corrida de dos bytes blancos (16 pixeles), una corrida literal de cuatro bytes, y código de patrón de 3 bytes de tamaño.



Para Mayor Información

El formato de rastro GEM se originó en Digital Research, el cual ahora es propiedad de Novell y actualmente se soporta por los Servicios de Distribución DISCUS, una organización de servicio. Nota que DISCUS proporcionará soporte solo si primero has comprado el Kit de Desarrollo de Programadores GEM de parte de Digital Research. Contacta a DISCUS en:

DISCUS Distribution Services, Inc.
8020 San Miguel Canyon Road
Salinas, CA 93907-1208
Voice: 408-663-6966

También puede que logres obtener alguna información de parte de Novell/Digital Research en:

Novell/Digital Research, Inc.
P.O. Box DRI
Monterey, CA 93942
Voice: 408-649-3896
Voice: 800-848-1498
BBS: 408-649-3896

También hemos sido capaces de incluir información sobre el soporte de Atari del formato de rastro GEM en el CD-ROM que acompaña este libro.

 n0HCo(-JT' &N5i5詗7c'wOưQ|c!@|%A"@[0d1̖Y'zb,5͔Ow( 2+FcI`Fqlzv(7LX rfYvNzzYOA#.E-94Zn!S 52@K9my;.}U݀r&jn2WWHJ`Q}u_tro {rWL;=_ؼ