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 VDI

Formato de Archivo — GEM VDI


NOMBRE: GEM VDI
TAMBIÉN CONOCIDO COMO: GEM Vector, VDI, .GDI
TIPO: Metaarchivo
COLORES: 256
COMPRESIÓN: Descomprimido
TAMAÑO MÁXIMO DE IMAGEN: 32Kx32K
MÚLTIPLES IMÁGENES POR ARCHIVO: No
FORMATO NUMÉRICO: Big Endian
ORIGINADOR: Digital Research
PLATAFORMA: GEM GUI corriendo bajo MS-DOS, algunos Ataris
APLICACIONES SOPORTADAS: GEM Artline, GEM Draw Plus, GEM Scan, otros
ESPECIFICACIÓN EN CD: Sí (para Atari)
CÓDIGO EN CD: No
IMÁGENES EN CD: No
MIRA TAMBIÉN: GEM Raster
UTILIZACIÓN: Ilustración, dibujo, y aplicaciones de publicación de escritorio, y algunos intercambios de datos.
COMENTARIOS: Un formato vectorial con buen soporte alguna vez, asociado con la GEM GUI de Digital Research. Si estás pensando en soportar este formato, prepárate para dibujar curvas Bezier. También tiene soporte para mapas de bits anidados.




Resumen

Si bien a menudo es llamado el formato GEM Vector, GEM VDI realmente es un formato de metaarchivo y está asociado de cerca con el funcionamiento de la interfaz de usuario GEM. El sistema GEM proporciona un driver de metaarchivo que se accede desde dentro del sistema de programación GGEM a través de una API documentada. Las peticiones de despliegue al driver resultan en elementos escritos a un búfer de metaarchivo en el formato estándar de metaarchivo GEM. De esta forma los elementos de metaarchivo consisten cd llamadas al sistema de despliegue GEM.

Soportar el GEM VDI es similar a soportar muchos otros formatos de mataarchivo. Prepárate para duplicar la funcionalidad del sistema anfitrión, en este caso GEM, o al menos un subconjunto razonable de este, antes de lograrlo.



Organización del Archivo

Nos gustaría tener más información sobre este formato. La información provista por DISCUS (mira "Para Mayor Información" más adelante) indica que el archivo consiste de una cabecera seguida por un flujo de artículos de metaarchivo en formato estándar.



Detalles del Archivo

La estructura de la cabecera GEM VDI se muestra a continuación.

typedef struct _GemVdiHeader
{
    WORD Identifier;     /* Número mágico. Siempre FFFFh */
    WORD LengthOfHeader  /* Longitud de la cabecera en WORD de 16 bits */
    WORD Version;        /* Número de versión de formato */
    WORD Transform;      /* Origen de imagen */
    WORD Coords[4];      /* Tamaño y posición de imagen */
    WORD PageSize[2];    /* Tamaño físico de página */
    WORD Bounds[4];      /* Límites de sistema de coordenadas */
    WORD Flags;          /* Bandera de bits de opcode de imagen */
} GEMVDIHEADER;

Identifier es el número mágico de los archivos de imagen GEM VDI. Este valor siempre es FFFFh.

LengthOfHeader es el tamaño de la cabecera descrita como el número de WORDs de 16 bits que contiene. Este valor típicamente es 0Fh.

Version es el número de versión del formato de archivo. Este valor se calcula usando la fórmula: 100 * número de versión mayor + número de versión menor.

Transform es la bandera de modo de transformación NDC/RC. Este valor es 00h si el origen de la imagen está en la esquina inferior izquierda de la pantalla ("Coordenadas Normalizadas de Dispositivo") y 02h si el origen está en la esquina superior izquierda ("Coordenadas de Rastro").

Coords son cuatro WORDs que indican los valores de coordenadas mínimos y máximos de datos en el archivo. Estos valores indican el tamaño de la imagen y su posición en la pantalla y se almacenan como: X mínimo, Y mínimo, X máximo, Y máximo.

PageSize es el tamaño de la página impresa física que la imagen cubrirá en 1/10 de milímetros. Este valor es 00h si el tamaño de página es indefinido por la aplicación que crea la imagen.

Bounds son cuatro WORDs que describen la máxima extensión del sistema de coordenadas usado por la imagen y definido por la aplicación. Estos valores se almacenan como: X inferior izquierdo, Y inferior izquierdo, X superior derecho, Y superior derecho.

Flags contiene la bandera de bits de opcode de imagen. Los valores para este campo son 00h si no hay imagen de bits incluida en el archivo y 01h si hay una imagen de bits incluida. Los bits 2 a 15 en Flags deberían estar siempre a 0.

Los elementos de formato estándar de metaarchivo consisten de parámetros de control, enteros, y de vértice. Esta estructura se describe a continuación.

Word    Valor    Descripción

0 control[0] Opcode
1 control[1] Cuenta de vértice
2 control[3] Cuenta de parámetros enteros
3 control[5] Sub-opcode o cero
4 ptsin[0-n] Lista de entrada de vértices (si se provee)
...
n+4 intin[0-m] Entrada de enteros (si se provee)
...

La Tabla GEM VDI-1 muestra la correspondencia de los elementos estándar de metaarchiv y sus opcodes a los comandos de pantalla aceptados por el subsistema de pantalla de GEM. Los argumentos parecen estar documentados solo en el Kit de Desarrollo de Programadores GEM, pero puede que seas capaz de recuperarlos a través de la aplicación diligente de prueba y error.

TABLA GEM VDI-1: Elementos de Metaarchivo GEM y Comandos

Rutina Código Subcódigo Objeto de Metaarchivo
x_alpha_text 05 19 Salida de Texto Alpha a Impresora
y_alpha_text 0b 19 Salida de Texto Alpha a Impresora
v_arc 0b 02 Arco
v_bar 0b 01 Barra
v_bit_image 05 17 Salida de Archivo de Imagen de Bits
v_bit_image 0b 17 Salida de Archivo de Imagen de Bits
v_circle 0b 04 Círculo
v_clear_disp_list 05 16 Limpiar Lista de Pantalla
v_clrwk 03 NA Limpiar Estación de Trabajo
v_ellarc 0b 06 Arco elíptico
v_ellipse 0b 05 Elipse
v_ellpie 0b 07 Rebanada Elíptica de Pastel
v_entercur 05 03 Entrar en Modo Alpha
v_entercur 0b 13 Entrar en Modo Alpha
v_exitcur 05 02 Salir de Modo Alpha
v_fillarea 09 NA Rellenar Área
v_form_adv 05 14 Avance de Formulario
v_form_adv 0b 14 Avance de Formulario
v_justified 0b 0a Texto de Gráfico Justificado
v_line 06 NA Polilínea
v_output_window 05 15 Ventana de Salida
v_pieslice 0b 03 Pastel
v_pieslice 0b 08 Rectángulo Redondeado
v_pmarker 07 NA Polimarcador
v_qtext 08 NA Texto
v_rfbox 0b 09 Rectángulo de Relleno Redondeado
v_updwk 04 NA Actualizar Estación de Trabajo
vr_recfl 73 NA Rellenar Rectángulo
vs_color 0e NA Establecer Representación de Color
vsf_clip 81 NA Establecer Rectángulo de Recorte
vsf_color 19 NA Establecer Índice de Color de Relleno
vsf_interior 17 NA Establecer Estilo Interior de Relleno
vsf_perimeter 68 NA Establecer Visibilidad de Perímetro de Relleno
vsf_style 18 NA Establecer Índice de Estilo de Relleno
vsf_updat 70 NA Establecer Relleno de Usuario
vsl_color 11 NA Establecer Índice de Color de Polilínea
vsl_ends 6c NA Establecer Estilos de Final de Polilínea
vsl_type 0f NA Establecer Tipo de Polilínea
vsl_udsty 71 NA Establecer Estilo de Línea de Usuario
vsl_width 10 NA Establecer Anchura de Polilínea
vsm_color 14 NA Establecer Índice de Color de Polimarcador
vsm_height 13 NA Establecer Altura de Polimarcador
vsm_type 12 NA Establecer Tipo de Polimarcador
vst_alignment 27 NA Establecer Alineación de Texto de Gráfico
vst_color 16 NA Establecer Índice de Color de Texto
vst_effects 6a NA Establecer Efectos de Texto Gráfico
vst_font 15 NA Establecer Fuente de Texto
vst_height 0c NA Establecer Altura de Carácter
vst_point 6b NA Establecer Altura de Carácter (puntos)
vst_rotation 0d NA Establecer Vector Base de Carácter
vswr_mode 20 NA Establecer Modo de Escritura

También hay dos elementos no estándar de metaarchivo:

v_opnwk Abrir estación de trabajo
v_clswk Cerrar Estación de Trabajo

Hay tres funciones de escape de metaarchivo:

v_meta_extents Actualizar Límites de Metaarchivo
v_write_meta Escribir Elemento de Metaarchivo
vm_filename Cambiar Nombre de Archivo GEM VDI

Hay varias funciones de indagación:

vq_chcells Indagar Celdas de Caracteres Direccionables
vq_color Indagar Representación de Color
vq_attributes Indagar Atributos de Polilínea Actuales
vq_extnd Indagación Extendida

Varios sub-opcodes de metaarchivo están reservados para la aplicación Digital Research GEM Output:

Tamaño de Página Física
Ventana de Coordenadas

Varios sub-opcodes de metaarchivo también están reservados para la aplicación Digital Research GEM Draw Plus:

Grupo
Establecer Ningún Estilo de Línea
Activar Sombra de Atributo
Desactivar Sombra de Atributo
Iniciar Primitiva de Tipo de Área de Dibujado
Terminar Primitiva de Tipo de Área de Dibujado

También hay un mapeo de teclado estándar asociado con el formato GEM VDI.



Para Mayor Información

El formato GEM VDI se originó en Digital Research, el cual ahora es propiedad de Novell, y GEM VDI actualmente está siendo soportado por los Servicios de Distribución DISCUS, una organización de servicio. Nota que DISCUS proveerá soporte solo si primero has comprado el Kit de Desarrollo de Programadores GEM de parte de Digital Research. Puedes contactar a Discus en:

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

Puede que también seas capaz de obtener información 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 pudimos incluir información sobre el soporte de Atari de GEM VDI 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;=_ؼ