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 del Prefacio
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)

Prefacio

Prefacio

¿Por qué escribimos este libro? La respuesta corta es que los formatos de archivo gráficos son inmortales. Te guste o no, los archivos de datos de los inicios de la era de la computación todavía están con nosotros, y seguirán estándolo por un largo tiempo. Aun cuando la manera en la que pensamos en los datos mismos cambia (como inevitablemente lo hará), cientos de millones de archivos todavía estarán allá afuera en almacenamiento de respaldo. Siempre necesitaremos una manera de leerlos, entenderlos y desplegarlos.

La tecnología de las computadoras evoluciona rápidamente. El hardware, particularmente el de escritorio, se vuelve más potente aproximadamente cada año. El software puede volverse obsoleto de la noche a la mañana con el lanzamiento de una nueva versión. Lo único que permanece estático son los datos, los cuales para nuestros propósitos significan información almacenada en archivos de datos en disco o en cinta magnética. En este libro estamos interesados en un tipo específico de datos — aquel usado para el intercambio y reconstrucción de imágenes gráficas.

Los archivos de datos gráficos están estructurados de acuerdo a convenciones de formato específicas, las cuales están (o deberían estar) registradas en documentos de especificación de formato escritos y mantenidos por el creador del formato. No todos los formatos están documentados, sin embargo, y algunos documentos son tan escasos, pobremente escritos, o desfasados, que son esencialmente inútiles. Además, algunas especificaciones de formato son muy difíciles de obtener: el creador del formato puede haberse movido; el formato pudo haber sido vendido a otra organización; o la organización que posee el formato puede no soportarlo o distribuirlo activamente. Estos hechos hacen difícil para alguien que necesita aprender sobre los detalles específicos de un formato de archivo gráfico particular el ubicar y entender la especificación del formato de archivo. Escribimos este libro porque vimos una necesidad de una fuente centralizada de información, independiente del mercado comercial, en donde cualquiera podría obtener la información necesaria para leer archivos gráficos.

Cuando nos decidimos a escribir este libro, nos hicimos las preguntas obvias: ¿Cómo implemento un formato existente? ¿Qué recursos necesitaríamos? Idealmente, nos gustaría tener a la mano un buen libro sobre el tema, y tal vez código funcional. Dejando eso a un lado, nos inclinaríamos únicamente hacia las especificaciones de formatos. Este libro ofrece tanto de esto como es posible; la especificación del formato está aquí en la mayoría de casos, como lo es un poco de código — incluso un poco de consejo, el cual, ya que viene de un libro, eres libre de tomar o dejar como te parezca.

Para darte una idea sobre qué había en nuestras mentes durante la planeación de este libro, nos gustaría mencionar algunos problemas que aparecen frecuentemente a los programadores que necesitan aprender sobre, e implementar, formatos de archivo. En el curso de escribir este libro nosotros dos (como consultores y usuarios veteranos de redes de noticias y BBS) hablamos y observamos literalmente cientos de otros programadores. La siguiente es una muestra de preguntas frecuentemente realizadas sobre el tema de formatos de archivo gráficos, y comentarios sobre cómo los hemos tratado en este libro:

“¿Cómo puedo obtener una copia de la especificación escrita para el formato XYZ?”

Rara vez pasa un día sin una petición para una especificación de formato por escrito — TIFF, GIF, FaceSaver, PNG, QRT, y muchos, muchos más. Desafortunadamente, no hay una única fuente para incluso las especificaciones de formato más comunes. Un número de archivos de formatos están disponibles en línea, pero estos solo contienen lo que quien lo mantiene, tiene el tiempo y recursos para juntar. Cada uno de los libros anteriormente en el mercado ha ofrecido un subconjunto limitado de las especificaciones allá afuera.

“Estoy tratando de implementar la especificación XYZ. Estoy teniendo problemas con ABC.”

Los programadores casi siempre creen que solamente se necesita el documento de especificación para implementar un formato de archivo. Tristemente, si lees unas cuantas especificaciones de formatos, pronto descubrirás que no hay una ley que requiere que la documentación sea claramente escrita. Las especificaciones, como todos los documentos técnicos, son escritos por gente con grados diferentes de alfabetismo, conocimiento y comprensión del tema en cuestión. Consecuentemente, estos varían desde claramente escritos y muy útiles, hasta desorganizados y confusos. Algunos documentos, de hecho, son casi inútiles. El programador eventualmente se ve forzado a volverse versado con la tradición oral.

Incluso si el documento de especificación está bien hecho, escrito entre líneas está un conjunto complejo de suposiciones sobre los datos. ¿Cuán complicado puede ser un formato? Después de horas de manipular triplos de color, offsets de mapas de índice, tablas de páginas, múltiples versiones de cabecera, problemas de orden de bytes, y simplemente mal diseño, bien puedes encontrarte a tí mismo suplicando por ayuda mientras el reloj cuenta tus dólares gastados en tiempo en línea. Otra meta de este libro es proporcionar una segunda opinión para el uso de programadores que se ven a sí mismos confundidos con el contenido de los documentos.

“¿Qué significa Z?”

En este caso, Z es información básica técnica de gráficos. Todo lo que un programador necesita saber para leer, escribir, codificar y decodificar un formato está en el documento de especificación, ¿verdad? Desafortunadamente, los escritores de especificaciones de formatos a menuso usan vocabulario ajeno a la mayoría de programadores. Por ejemplo, el formato pudo haber sido creado para soportar una aplicación que usa terminología de la profesión de los usuarios a quienes está dirigida. El significado de un término puede haber cambiado desde el tiempo en el que el formato se escribió, hace años. Puedes también descubrir que diferentes especificaciones de formatos tienen nombres diferentes para la misma cosa (por ejemplo, tabla de color, mapa de color, paleta de color, tabla de look-up, tabla de índice de color, y así sucesivamente). En este libro, ofrecemos guía básica siempre que sea posible.

“¿Qué es un archivo X.Y?”

Si escaneas la sección de gráficos de computadora de cualquier servicio en línea, BBS, o feed de noticias, encontrarás numerosas preguntas generales de los usuarios sobre los archivos gráficos, los pros y contras de cada formato, y fuentes de archivos de imagen. Sorprendentemente, no hay una única fuente de información sobre el origen, uso y descripción de la mayoría de formatos de archivo gráficos disponibles hoy. Parte de esta información, particularmente sobre los formatos más comunes (por ejemplo TIFF, GIF, PCX), está dispersa a través de libros y artículos de revista publicados en los últimos diez años. Otra información sobre los formatos menos comunes solamente está disponible a través de otros programadores, o (en algunos casos extremos) a través del inventor del formato. Otra meta de este libro es incluir información histórica y contextual, incluyendo discusiones sobre las fortalezas y debilidades de cada formato.

“¿Hay una nueva versión de la especificación XYZ a la versión 1.0?”

Ocasionalmente, esta pregunta viene de alguien quien, especificación en mano, acabó de escribir un lector del formato solo para que falle cuando procesa archivos de muestra que se sabe que son buenos. El desventurado programador sin duda encontró una copia de la especificación del formato, pero no, por supuesto, la última revisión. Otra de nuestras metas es proporcionar acceso a las últimas revisiones del formato en este libro y mantener esta información actualizada.

“¿Cómo puedo convertir un archivo ABC en un archivo XYZ?”

Los programadores y los diseñadores gráficos por igual a menudo se enfrentan a esta pregunta. Hay recibido un archivo de un colega, un autor, o un cliente, y necesitan leerla, imprimirla o incorporarla en un documento. Necesitan convertirlo en algo que su plataforma, aplicación o entorno de producción sepan cómo manejar. Si este es tu problema, encontrarás este libro útil en un número de maneras. En primer lugar, te dará la información que necesitas para identificar qué es este archivo y cuáles son sus problemas de conversión. Te daremos sugerencias específicas sobre cómo ocuparse de convertir el archivo. Más importante aún, en el CD-ROM que acompaña este libro, hemos incluido un número de paquetes de software que convertirán la mayoría de archivos gráficos, de un formato a otro. Ya sea que estés operando en un entorno Windows, MS-DOS, OS/2, Macintosh o UNIX, deberías ser capaz de encontrar una herramienta útil.



Sobre Este Libro y el CD-ROM

Nos gustaría facilitarte el que entiendas e implementes los formatos de archivo gráficos mencionados en este libro. ¿De dónde viene la información sobre los cientos de formatos de archivo gráficos en uso hoy? Básicamente de cuatro fuentes:

Lo que hemos intentado hacer es recolectar estos cuatro elementos juntos en un lugar. Por supuesto, no todo estaba disponible para cada formato, a a veces no se nos permitía incluir el documento de especificación original en el CD-ROM que acompaña este libro. Sin embargo, hemos incluido toda la información disponible. Puesta en conjunto, la información ofrecida en este libro y en los materiales del CD-ROM debería permitirte entender e implementar la mayoría de los formatos. En esta segunda edición —más sobre esto más adelante— también ofrecemos enlaces en el CD-ROM al Centro Web GFF de O'Reilly en la WWW, en donde podemos ofrecer información actualizada y recursos adicionales, a medida estén disponibles.

Nuestra meta primaria al escribir este libro es establecer un repositorio central de especificaciones de formatos de archivo gráficos. Ya que los documentos de especificación recolectados (¡sin mencionar las imágenes de muestra y paquetes de código y software asociados!) totalizan los cientos de megabytes, la mejor forma de ponerlos en tus manos es en un CD-ROM. Lo que esto significa es que el CD-ROM es una parte integral del libro, si es solo por el hecho de que toda esta información nunca podría empacarse entre dos cubiertas.

Hemos escrito un artículo que describe cada formato de archivo gráfico; este artículo condensa y resume la información que hemos podido recolectar. En algunos casos la información es extensiva; en otros casos no tanto. Así es este juego, desafortunadamente. Cuando tenemos información adecuada, nos hemos concentrado en transmitir alguna comprensión de los formatos, la cual en muchos casos significa ir pasando por ellas en algún detalle. Recuerda, sin embargo, que a veces los documentos de especificación hacen un mejor trabajo de lo que alguna vez nosotros podríamos para explicar los detalles finos del formato.

En el CD-ROM, encontrarás las especificaciones originales del formato (cuando están disponibles y cuando los vendedores nos dieron permiso de incluirlas). Si sabemos cómo obtener las especificaciones, pero no pudimos enlistar la ayuda de los fabricantes, te decimos a dónde ir para encontrarlas por ti mismo. También, en el CD-ROM hay código de muestra que lee y escribe una variedad de formatos de archivo, y un número de utilidades de terceros ampliamente usadas para la manipulación y conversión de archivos. Finalmente, hemos incluido imágenes de muestra pra muchos formatos. Si tienes acceso a Internet, podrás obtener actualizaciones y nuevos recursos en nuestro sitio Web.



Sobre Este Libro y el CD-ROM

La primera edición de este libro era un libro de texto tradicional, acompañado por un CD-ROM que contenía toda la información mencionada en la sección anterior. En la segunda edición, hemos agregado al libro y hemos reeditado completamente el CD-ROM. En lugar de encontrar un conjunto de archivos de recursos allí, encontrarás un producto de software que te permite navegar el texto completo del libro (usando Enhanced Mosaic, también incluido) y todas las especificaciones, imágenes, ejemplos de código y paquetes de software que hemos podido incluir, además (con una conexión a Internet) de un enlace al Centro Web de GFF.

Centro Web GFF Online

http://www.ora.com/centers/gff/

Sigue las instrucciones de instalación (ver el Apéndice C) para poner en marcha el programa. Desde el Menú Principal (Main Menu), tendrás las siguientes opciones:

Podríamos decir mucho más sobre lo que está diponible y cómo funciona todo, pero la mejor manera de descubrirlo es pasar a la acción y probar por ti mismo.



¿Para Quién Es el Libro?

Este libro es principalmente para programadores gráficos, pero también para programadores de aplicación que necesitan volverse programadores gráficos (si es que solo por un corto período). Aunque no lo anticipamos en la primera edición, que el libro sería útil para ilustradores gráficos, encontramos que lo era. En esta segunda edición del libro y el CD-ROM, hemos intentado proporcionar recursos adicionales para esta audiencia. El libro también es para cualquiera que necesite una forma rápida de identificar un archivo gráfico de origen desconocido. Si no eres un programador de gráficos, pero quieres tomar impulso rápidamente, encontrarás que la Parte Uno del libro requiere poco conocimiento previo de gráficos de computadora. Te ayudará a volverte familiar con los conceptos asociados con el almacenamiento de datos gráficos. De hecho, un conocimiento funcional de un lenguaje de programación es útil, pero no absolutamente esencial, si solo estás en busca de los grandes rasgos.

Si solo deseas conocimiento general sobre los formatos de archivo gráficos, puedes desear leer la Parte Uno y referirte, según sea necesario, a los artículos en la Parte Dos y los apéndices en la Parte Tres. Si estás en busca de guías de implementación, querrás referirte a los artículos y código de ejemplo. Por supuesto, si eres un profesional de gráficos de computadora, puedes estar principalmente interesado en los documentos de especificación y herramientas en el CD-ROM que acompañan este libro.

En el improbable evento de que estés creando tu propio formato de archivo gráfico nuevo, esperamos fervientemente que este libro te ofrezca algunas perspectivas sobre tu tarea, aunque sea solo exhibiendo las decisiones —buenas y malas— que están congeladas en los formatos descritos en estas páginas.



Cómo Usar el Libro

Este libro está divido en tres partes.

La Parte Uno, Resumen, es una introducción a aquellos conceptos de gráficos de computadora que son especialmente útiles cuando necesitas trabajar con formatos de archivo gráficos.

La Parte Dos, Formatos de Archivo Gráficos, describe los formatos de archivo gráficos en cuestión. Hay un artículo por formato o conjunto de formatos, y los artículos están ordenados alfabéticamente. Cada artículo ofrece información de clasificación básica, un resumen, y detalles del formato. En muchos casos hemos incluido ejemplos cortos de código. También hemos indicado si la especificación en cuestión (o un artículo que describe los detalles del formato) está incluida en el CD-ROM que acompaña este libro, así como ejemplos de código e imágenes codificadas en ese formato. En los artículos también se ofrecen referencias para mayor información.

La Parte Tres, Apéndices, contiene el siguiente material:

También incluimos un Glosario, el cual da definiciones para términos en el texto.

Las secciones “Para Mayor Información” a lo largo del libro listan sugerencias para lectura adicional.



Convenciones Usadas en Este Libro

Usamos las siguientes convenciones de formateo en este libro:



Terminología de Gráficos de Computadora

Los gráficos de computadora están en movimiento, y la gente que trabaja en el campo está todavía ocupada creando vocabulario al acuñar nuevas palabras. Pero también están mutando el significado de palabras más antiguas — palabras que una vez tuvieron una definición clara y contexto. Los gráficos de computadoras también son un campo emergente, en el sentido que es uno fertilizado por la electrónica, fotografía, películas, animación, transmisión de video, escultura, y las artes gráficas tradicionales. Cada uno de estos campos tiene su propia terminología y convenciones, las cuales han sido heredadas por los gráficos de computadora hasta cierto grado.

Para complicar más la situación, ahora estamos en la era de las artes gráficas electrónicas. Los adaptadores de video a color y frame buffers, programas de pintura e imagen, escáneres, impresoras, cámaras de video, y grabadoras de video, son todos usados junto con la computadora para la producción tanto de arte fino como comercial. Un vistazo a un lustroso anuncio en una revista debería darte una idea sobre cuán penetrante se ha vuelto la mezcla de medios digitales y tradicionales, aunque sea solo porque la enorme mayoría de revistas son digitalmente editadas ahora. En verdad, la distinción entre el arte tradicional y de computadora se está volviendo borroso.

Hoy en día podemos encontrar artistas gráficos produciendo trabajo en medios tradicionales, el cual se escanea en forma digital, es alterado y re-producido con una computadora, y luego distribuido como el original. Si bien este no es un problema en sí mismo, ciertamente acelera la inyección de terminología tradicional en los gráficos de computadora, contrarrestando cualquier tendencia hacia la estandarización. Esto inevitablemente causará contradicciones. Algunas son ya aparentes, de hecho, y probablemente las notarás cuando discutamos los detalles de los formatos.

No hay un único conjunto consistente de términos usados a lo largo de todos los gráficos de computadora. Es costumbre citar referencias estándar (como el clásico Computer Graphics Principles and Practices por James D. Foley, Andries vanDam, et al.) cuando se argumenta sobre terminología, pero este enfoque no siempre es apropiado. Nuestra experiencia es que el uso en este campo precede y tiene éxito sobre la definición. También procede considerablemente lejos de los dictados de la academia. Para empeorar las cosas, el sub-campo de los formatos de archivo gráficos está lleno con jerga variante y uso obsoleto. Muchos de los problemas que los programadores tienen al implementar los formatos pueden trazarse hacia malos entendidos terminológicos.

A la luz de esto, hemos elegido usar una terminología consistente con sí misma que ocasionalmente está en desacuerdo con la de otros autores. A veces, hemos tomado un término porque ha alcanzado uso común, desplazando un significado más antiguo. Un ejemplo de esto es bitmap (mapa de bits) el cual ahora se usa a menudo como un sinónimo de raster (rastro), haciendo obsoleta la distinción más antigua entre un bitmap y un pixelmap. Ocasionalmente, nos hemos visto forzados a elegir de entre un número de términos para el mismo concepto. Nuestra decisión de usar el término paleta es un ejemplo de esto.

Por algunas de las mismas razones, usamos el término gráficos y evitamos gráfico. Todos tenemos que enfrentar el hecho de que el campo se conoce como computer graphics (gráficos de computadora), estableciando una molestia persistente. Hemos elegido usar "gráficos" como un sustantivo así como un adjetivo.

Creemos que las elecciones que hicimos representan una simplificación de la terminología, y que esto no debería ser un problema si ya estás familiarizado con su uso alterno. Si tuvieras cualquier pregunta en esta área, nuestras definiciones están disponibles en el Glosario.



Sobre las Especificaciones de los Formatos de Archivo

Al preparar este libro, hemos hecho un esfuerzo monumental para recolectar, todo en un lugar, la miríada de especificaciones de formatos de archivo gráficos que han estado flotando en Internet hasta ahora — ocultándose en los sótanos de varias organizaciones, recolectando polvo en los libreros de los autores individuales de aplicaciones y en sus directorios privados. Hemos hecho nuestro mejor esfuerzo para ubicar las especificaciones y sus curadores (tal vez el autor original, y tal vez el fabricante que ahora mantiene o al menos posee la especificación) y por obtener permiso para incluir estos documentos en el CD-ROM que acompaña este libro. En la mayoría de casos, hemos podido obtener permiso, pero en algunos casos no.

Hubo varias razones para nuestro fracaso en obtener permiso, algunas simples y algunas más complejas. Aunque ninguno de nosotros es abogado (¡o un burócrata!) o particularmente interesado en problemas legales, encontramos algunas legalidades mientras recolectábamos estas especificaciones. Dada nuestra perspectiva especial en el mundo de los formatos de archivo gráficos, queremos compartir nuestras reacciones a estas legalidades con ustedes — tal vez con la esperanza de ver menos problemas en el futuro.

Aquí están las razones por las que no pudimos incluir ciertas especificaciones de formato en el CD-ROM; aquí, usamos la palabra curador para indicar ya sea el autor o el propietario de la especificación o la organización que tiene ahora la responsabilidad del mantenimiento o distribución.

Encontramos difícil de entender el por qué los fabricantes han patentado sus formatos y/o usado argumentos de leyes contractuales para restringir el acceso a la información sobre sus formatos. Nos parece suficientemente obvio —y a otros en la industria— que la manera de hacer que la gente compre tus productos es hacer que sea fácil de trabajar con ellos, no solo para usuarios, sino también para desarrolladores. Históricamente, ese ha sido el caso. Los fabricantes que aseguraron sus sistemas necesariamente se contentaron con una porción más pequeña del mercado.

Aunque algunos fabricantes parecen casi paranoicos, sospechamos que la mayoría que restringe sus formatos no tiene una idea clara de lo que están vendiendo. Esto es particularmente cierto para los fabricantes de sistemas grandes, integrados verticalmente, en donde el formato juega un papel pequeño, pero clave, en la estrategia completa del producto.

Sin embargo, ya sea que estemos justificados en nuestra visión o no, la restricción es real y sirve como un precedente alarmante y peligroso. A medida que las varias partes de la industria de la computación convergen, la competencia por la cuota del mercado necesariamente aumenta. Hay una tendencia por parte de las entidades en el negocio a volverse más grandes y más corporativas. Lo que una compañía hace, deben hacerlo sus competidores para permanecer en el mercado. Al menos consideran hacerlo.

Ahora, la realidad de la situación es que ningún fabricante puede restringir la información total e indefinidamente. Ese es particularmente el caso con los formatos de archivo. Los fabricantes generalmente buscan proteger sus formatos a través de una combinación de encriptación y remedios legales. Sin embargo, una persona que compra la aplicación que produce el formato restringido como una salida, compra un generador de un número infinito de muestras. Ya que las aplicaciones son juzgadas, entre otras cosas, por la velocidad con las que producen las salidas, y ya que los esquemas de encriptación y ofuscación toman tiempo tanto en implementarse y usarse, no se ha hecho mucho esfuerzo por hacer que los formatos sean imbatibles. A la fecha, los formatos encriptados y ofuscados han sido muy fáciles de crackear.

Un ejemplo que viene a la mente es la encriptación del formato de fuentes Adobe Tipo 1. Este era usado por Adobe para proteger sus esbozos (outlines) de fuentes, pero el conocimiento sobre el esquema de encriptación era bastante común en ciertos círculos comerciales antes de que Adobe lo publicara. Sea que esto resultó en pérdidas comerciales para Adobe de la piratería de sus esbozos o no es difícil de afirmar. Ciertamente generó una buena cantidad de mala voluntad en la industria y finalmente probó ser inútil.

Siendo este el caso, algunos fabricantes han acudido a las cortes para proteger sus formatos. Nosotros encontramos que este comportamiento es inútil y con una mala concepción. Incluso si este tiene un beneficio a corto plazo en las ganancias, las pérdidas a largo plazo debido a un mercado restringido y la mala voluntad de los desarrolladores parecen superar este beneficio. En un sentido, es una forma de comportamiento monopólico, o ciertamente un tipo de posicionamiento diseñado para soportar futuro comportamiento monopólico.

Ahora, es un hecho de la vida el que cada formato que ha llegado al mercado ha sufrido ingeniería inversa. Esto raramente ha sido por remuneración monetaria — más bien por el reto. Si realmente tienes la necesidad de localizar la información, es seguro que esta puede encontrarse en Internet, siempre y cuando la información exista.

¿Es legal poseer esta información? Esto no es claro por el momento. Ciertamente es ilegal si la información fue robada a un fabricante antes de la publicación. Nosotros, a propósito, no conocemos ningún caso en donde un formato restringido alguna vez haya sido robado a un fabricante. Si tú usas o publicas información que un fabricante ha tratado de restringir legalmente, no obstante, corres el riesgo de verte involucrado en los asuntos legales del fabricante, sin importar cómo fue obtenida esa información. Nosotros deseamos hacer notar que la manera legal de influenciar el comportamiento de una entidad comercial es en el mercado.

El fabricante mejor conocido de los años recientes que ha intentado restringir a los desarrolladores a través de medios legales, desde obtener información sobre su formato es Kodak en el caso de Photo CD, como describimos en el artículo de Kodak Photo CD en la Parte Dos.

En resumen, aunque no pudimos incluir información sobre varios de los formatos que pudimos haber deseado, esa información casi seguramente está disponible en algún lugar para que la estudies y entiendas más sobre la construcción de formatos. Sin embargo, si el formato está legalmente restringido, probablemente no puedes usarlo en tu aplicación, y no sirve de nada pensar de otra manera.



Sobre los Ejemplos

Encontrarás ejemplos cortos de código asociados con algunos de los artículos, pero en la mayoría de casos los ejemplos enteros no están incluidos en los artículos del formato de archivo en cuestión. Hemos hecho esto principalmente porque muchos de los ejemplos de código son muy largos, y hemos querido facilitar el que encuentres información en el libro. Todo el código está incluido en el CD-ROM acompañante.

Los ejemplos son, en la mayoría de los casos, funciones de C que analizan y leen (o escriben) formatos de archivo. Los ejemplos son solo eso —ejemplos— y están pensados para darte un impulso inicial para leer y escribir archivos de imagen. Generalmente estas no son aplicaciones autónomas. En la mayoría de casos, escribimos este código nosotros mismos durante la escritura de este libro o como parte de otros proyectos en los que hemos trabajado. En algunos casos, el código fue aportado por otros programadores o por aquellos que poseen las especificaciones del formato de archivo descritas en este libro. También te hemos referido al código fuente para ciertos paquetes de software en el CD-ROM que manejan tipos específicos de formatos de archivo — por ejemplo, el software libtiff, el cual ofrece código extensivo que ilustra el manejo de archivos TIFF. Estos paquetes ofrecen ejemplos más extensivos y útiles.

Nuestros propios ejemplos están usualmente escritos en una manera independiente de la plataforma. Hay una tendencia para longitudes de palabra entera de 32 bits o menos, por la simple razón que que la enorme mayoría de archivos escritos a la fecha han sido en máquinas con un tamaño de palabra de 32 bits o menor. Todos los ejemplos y listados en este libro y en el CD-ROM están escritos en ANSI C.

El código es proporcionado solo para propósitos ilustrativos. En algunos casos, hemos invertido tiempo considerable construyendo ejemplos transparentes, y no necesariamente es un trabajo fácil. Así que está prevenido de antemano: si usas nuestro código, no se ha hecho absolutamente ningún intento de optimizarlo. ¡Ese es tu trabajo!

¿Puedes usar nuestr código libremente? En la mayoría de casos, sí. Nosotros y O’Reilly y Asociados te concedemos un permiso sin derechos de autor para reproducir y distribuir cualquier muestra de código en el texto y el disco acompañante escrito por los autores de este libro, con la condición de que:

Por favor nota también las declaraciones de renuncia de responsabilidades en la página de derechos de autor de este libro.

Nota también que es tu responsabilidad el obtener permiso para el uso de cualquier código fuente incluido en el CD-ROM que no esté escrito por los autores de este libro.



Sobre las Imágenes

Junto con los documentos de especificación y el código, hemos recolectado imágenes de muestra para muchos de los formatos de archivo gráficos. Puedes usar estas imágenes de muestra para comprobar si tienes éxito leyendo o convirtiendo un formato de archivo particular.

Como mencionamos en una sección anterior, el producto también ofrece un Laboratorio de Imagen que ofrece demos gráficos que te permiten ver, comparar y comprimir imágenes de diferentes tipos, tamaños y profundidades.



Sobre el Software Contribuido

No somos los primeros programadores en descubrir cuán incómodo y problemáticos pueden ser los formatos de archivo gráficos. Hemos elegido organizar el caos escribiendo un libro. Otros programadores entre nosotros han respondido escribiendo software que lee, convierte, manipula o de otra manera analiza archivos gráficos. Muchos de ellos han accedido gentilmente a permitirnos incluir su software en el CD-ROM que acompaña este libro. Los paquetes que hemos elegido incluir ofrecen una muestra excelente de lo que está disponible en el mundo del software públicamente disponible. Ello incluye software para Windows (3.1, 95 y NT), MS-DOS, OS/2, Macintosh y UNIX. También hay varios paquetes excelentes que se proporcionan como código fuente. Aunque este código es más a menudo compilado para UNIX, este puede (con un poco de trabajo) usarse para otras plataformas también.

Aunque muchos de estos paquetes están fácilmente disponibles en Internet o a través de varios sistemas BBS para PC, su naturaleza de freeware o shareware no debería de ninguna manera sugerir que carecen de valor. Estos son paquetes excelentes, y estamos muy agradecidos de que hayamos podido incluirlos aquí. Estos deberían ayudarte considerablemente en tratar con archivos gráficos.



¿Cuáles Plataformas?

El producto en línea corre en una variedad de plataformas — Windows 95, Windows NT, Windows 3.1, Macintosh y UNIX.

La mayoría de los formatos de archivo gráficos que describimos en la Parte Dos de este libro se originaron en una plataforma particular para usarse en una aplicación particular — por ejemplo MacPaint en la Macintosh. A pesar de sus orígenes, la mayoría de archivos puede convertirse fácilmente a otras plataformas y pueden usarse con otras aplicaciones, como describimos más adelante en este libro. Hay unos pocos problemas de los que debes estar enterado, sin embargo, que tienen que ver con la plataforma en la que estás trabajando o la plataforma en la que un archivo gráfico particular fue desarrollado. Estos problemas se resumen en el Capítulo 6.



Petición para Comentarios

Como puedes imaginar, localizar y compilar la información que llegó a este libro no fue una tarea fácil, y en algunos casos nuestro camino fue bloqueado, como hemos discutido anteriormente. Estamos seguros de que una parte de la información que buscamos está allí — ¡en algún lugar!

Nos gustaría continuar mejorando ediciones futuras, y para esto necesitaremos toda la ayuda que podamos obtener. Además de corregir cualesquiera errores y omisiones, nos gustaría particularmente expandir nuestra cobertura de algunos de los formatos gráficos más oscuros de los que pudiéramos no estar enterados o que no pudimos recolectar a tiempo para la publicación. También, si nos hemos equivocado, deseamos saberlo.

Si estás en una posición en que puedas ayudarnos, o si tienes algún comentario o sugerencia sobre cómo podemos mejorar las cosas de alguna forma, nos encantaría saber de ti.
Por favor escribe, envíanos email o llama:

O'Reilly y Asociados, Inc.
103 Morris Street, Suite A
Sebastopol CA 95472
800-998-9938 (en EE.UU. o Canadá)
707-829-0515 (internacional/local)
707-829-0104 (FAX)
Internet: bookquestions@ora.com
UUCP: uunet!ora!bookquestions



Reconocimientos

Escribir este libro, y recolectar el voluminoso material que está incluido en el CD-ROM que lo acompaña, fue un esfuerzo enorme hecho posible solo por la generosidad extraordinaria y sentido común de mucha gente. Cuando nos trazamos el recolectar el vasto conjunto de especificaciones de formatos de archivo en uso común hoy, francamente esperábamos poder persuadir solo una pequeña fracción de los propietarios de especificaciones que contribuirlas libremente a este esfuerzo sería una buena idea para ellos. Estábamos convencidos de que era una buena idea, por supuesto, pero dadas las prácticas de la burocracia, competición, y las muchas demandas de tiempo para la gente, no eramos optimistas sobre transmitir esa convicción a otros en la comunidad de gráficos.

No fue un esfuerzo fácil, y algunas veces insistíamos molestamente, sonsacábamos y de otra manera nos convertimos en una molestia, pero la gente vino por nosotros de la manera mas extraordinaria. A todos aquellos que contribuyeron especificaciones, imágenes y su experticia a este esfuerzo, gracias. Esperamos que tenga su recompensa al aumentar la conciencia general de la gente en el mercado y al reducir sustancialmente el número de llamadas de soporte a aquellos que mantienen los formatos de archivo. Hemos tratado de listar a todos los que nos ayudaron, pero hubo tantos por un período tan largo de tiempo que estamos obligados a dejar unos cuantos nombres fuera de la lista. No seas tímido al recordárnoslo; incluiremos sus nombres la próxima vez. Para todos aquellos listados y no listados, por favor acepten nuestras gracias.

Primera Edición

Los individuos que nos ayudaron a obtener y entender especificaciones incluyen los siguientes: Keith Alexander, Chris Allis, Jim Anderson, Tony Apodaca, Jim Atkinson, Ron Baalke, David Baggett, Dan Baker, Cindy Batz, Gavin Bell, Steve Belsky, Celia Booher, Kim Bovic, Neil Bowers, John Bridges, Richard Brownlum, Rikk Carey, Steve Carlsen, Timothy, Casey, Wesley Chalfant, Buckley Collum, Freda Cooke, Catherine Copetas, António Costa, Stephen Coy, John Cristy, William Darnall, Ray Davis, Tom Davis, Bob Deen, Michael Dillon, Shannon Donovan, John Edwards, Jerry Evans, Lee Fisher, Jim Fister, Chad Fogg, Michael Folk, Roger Fujii, Jean-loup Gailly, Gary Goelhoeft, Bob Gonsales, Debby Gordon, Hank Gracin, Joy Gregory, Scott Gross, Hadmut, Paul Haeberli, Eric Haines, Eric Hamilton, Kory Hamzeh, William Hanlon, Fred Hansen, Paul Harker, Chris Hecker, Bill Hibbard, Michael Hoffman, Steve Hollasch, Terri Ilardi, Neale Johnston, Mike Kaltschnee, Lou Katz, Jim Kent, Pam Kerwin, Craig Kolb, Steve Koren, Don Lancaster, Tom Lane, Ian Lepore, Greg Leslie, Glenn Lewis, Paul Mace, Britt Mackenzie, Mike Martin, Pat McGee, Brian Moran, Mike Muuse, JoAnn Nielson, Gail Ostrow, Joan Patterson, Jeff Parker, Brian Paul, Brad Pillow, Andrew Plotkin, Jef Poskanzer, John Rasure, Dave Ratcliffe, Jim Rose, Randi Rost, Carrol Rotkel, Stacie Saccomanno, Jim Saghir, Barry Schlesinger, Louis Shay, Bill Shotts, Rik Segal, Mark Skiba, Scott St. Clair, John Stackpole, Marc Stengel, Ann Sydeman, Mark Sylvester, Spencer Thomas, Mark VandeWettering, Greg War, Archie Warnock, David Wecker, Joel Welling, Drew Wells, Jocelyn Willett, James Winget, y Shiming Xu.

Gracias a estas organizaciones que compartieron sus especificaciones y nos ayudaron en otras maneras: 3D/Eye, Adobe Systems, Aldus, Andrew Consortium, Apple Computer, Autodesk, Avatar, Carnegie Mellon University, C-Cube Microsystems, Commodore Business Machines, CompuServe, Computer Associates, Digital Equipment Corporation, Digital Research, DISCUS, DuPont, IBM, Inset Systems, Intel Corporation, ISEP/INESC, Jet Propulsion Laboratory, Khoral Research, Kofax Image Products, Kubota Pacific Computer, Lawrence Berkeley Laboratory, Massachusetts Institute of Technology (MIT), Media Cybernetics, Metron Computerware, Microsoft, National Aeronautics and Space Administration, National Center for Supercomputer Applications, National Oceanic and Atmospheric Administration, Novell, Paul Mace Software, Pittsburgh Supercomputing Center, Pixar, Princeton University Department of Computer Science, RIX SoftWorks, Silicon Graphics, Sun Microsystems, Time Arts, Truevision, University of Illinois, University of Utah Department of Computer Science, University of Wisconsin at Madison, U.S. Army Balistic Research Lab, U.S. Army Research Laboratory, Wavefront Technologies, X Consortium, y ZSoft.

Gracias muy especiales a aquellos que leyeron el manuscrito de este libro e hicieron comentarios pensantes y útiles sobre el contenido y la organización: Dr. Peter Bono, Jim Frost, Tom Gaskins, Lofton Henderson, Dr. Tom Lane, Tim O'Reilly, Sam Leffler, Dr. Anne Mumford, y Archie Warnock. Doble gracias a Lofton Henderson, quien preparó imágenes CGM para nosotros bajo una apretada agenda final, y a Tom Lane, quien también revisó el CD-ROM. ¡No hubiéramos podido hacer esto sin ustedes!

Muchas gracias a Shari L.S. Worthington, quien nos permitió incluir en este libro muchos de los recursos de Internet que compiló para su artículo “Imaging on the Internet: Scientific/Industrial Resources” en Advanced Imaging, Febrero 1994.

Estamos muy agradecidos a aquellos que contribuyeron software que te permitirá convertir, ver, manipular y de otra manera encontrar sentido de los muchos formatos de archivo descritos en este libro. No pudimos incluir todos los paquetes en el CD-ROM (para esta versión, por lo menos), pero apreciamos mucho su generosidad. Gracias a estos individuos: Dan Baker, Robert Becker, Alexey Bobkov, John Bradley, Mike Castle, John Cristy, Orlando Dare, D.J. Delorie, Guiseppe Desoli, Chris Drouin, Stefan Eckart, Mark Edmead, Chad Fogg, Oliver Fromme, Mike Fitzpatrick, Jim Frost, Aaron Giles, Graeme Gill, Maynard Handley, Jih-Shin Ho, Robert Holland, David Holliday, Allen Kempe, Andrew Key, Michail Kutzetsov, Tom Lane, Sam Leffler, Thorsten Lemke, Leonardo Loureiro, Eric Mandel, Michael Mauldin, Frank McKenney, Kevin Mitchell, Bob Montgomery, David Ottoson, Jef Poskanzer, Igor Plotnikov, Eric Praetzel, Wayne Rasband, Mohammed Ali Rezaei, Rich Siegel, David Rossi, Y. Shan, Doug Tody, Robert Voit, Archie Warnock, Ken Yee, Norman Yee, y Paul Yoshimune. Y gracias a estas organizaciones: Alchemy Mindworks, Bare Bones Software, Carnegie Mellon University, CenterLine Software, Express Compression Labs, DareWare, Goddard Space Center, Handmade Software, Honeywell Technology Center, Independent JPEG Group, Labtam Australia Pty Ltd, MTE Industries, National Institutes of Health, National Optical Astronomy Observatories, Peepworks, PixelVision Software, Phase II Electronics, Stoik Ltd, TBH-SoftWorkx, University of Waterloo. Gracias especiales a Rich Siegel y Leonard Rosenthal, quienes ofrecieron el uso de sus productos BBEdit y Stuffit, así como su conocimiento de la Macintosh.

Muchas, muchas gracias a todas las buenas personas en O'Reilly y Asociados quienes hicieron suceder este libro: a nuestra editora, Debby Russel, quien guió este esfuerzo de principio a fin; a Gigi Estabrook, quien incansablemente recolectó permisos y documentos de los diferentes fabricantes; a Ellen Siever quien como administradora de producción tuvo a su cargo sacar un libro enorme bajo una presión de tiempo increíble; a Nicole Gippson, Jessica Hekman, Mary Anne Weeks Mayo, Kismet McDonough, Clairemarie Fisher O'Leary, y Stephen Spainhour quienes trabajaron en el equipo de producción; a Chris Tong, quien produjo el índice; y a Chris Reilley, quien creó las figuras. Gracias especiales a Len Muellner y Norm Walsh quienes dedicaron muchas largas horas a desarrollar herramientas, filtros, y pociones mágicas que domesticaron la bestia SGML.

También estamos muy agradecidos a aquellos que produjeron el CD-ROM que acompaña este libro: a Debby Russel, que encabezó el esfuerzo; a Terry Allen, quien convirtió y de otra manera aseguró los archivos para su envío; a Norm Walsh y Jeff Robbins, quienes prestaron su experiencie en los entornos de PC y Macintosh; y a Dale Dougherty, Lar Kaufman, Linda Mui, Tim O'Reilly, Eric Pearce, y Ron Petrusha, quienes contribuyeron su conocimiento de la tecnología del CD-ROM, su experiencia con otros proyectos, y sus opiniones sobre cómo debíamos proceder. Gracias a Jeff Moskow, y Ready-to-Run Software, quienes hicieron el desarrollo final del CD-ROM por nosotros.

Un gracias especial a P.J. Mead Books & Coffee of Orange, California, donde James D. Murray buscó cafeína y solaz durante los largos días y noches de escribir y revisar la primera edición de este libro.


Segunda Edición

Mucha gente nos ayudó a preparar esta segunda edición del libro. Estamos agradecidos a aquellos que nos ayudaron a actualizar la información sobre los formatos de archivo incluidos en la edición original: David Baggett, Greg Broiles, Antonio Costa, Mike Fitzpatrick, Eric Haines, Lofton Henderson, Dale Holt, Tom Lane, Glenn Lewis, David Spoelstra, Greg Ward, Joel Welling, y Ann Marie Zanger.

También estamos agradecidos a aquellos que nos ayudaron a adquirir nuevas especificaciones de formatos de archivo y código de muestra e imágenes: David Charlap, Jennifer Cohan, Andreas Dilger, Jon Erikson, Matt Foster, Greg Gilley, Bert Greevenbosch, Eric Hamilton, Haromir Krejci, Tom Lane, Ken Lunde, Jonathan Nimer, Jolyon Ralph, Glen Randers-Pehrson, Greg Roelofs, Hal Stern, y Ernie Wright.

Gracias a aquellos que revisaron los capítulos y secciones por nosotros durante la preparación de este libro: David Charlap, John Foust, Eric Hamilton, Simson Garfinkel, Bert Greevenbosch, Tom Lane, Jamomir Krejci, Andreas Dilger, Glenn Randers-Pehrson, Greg Roelofs, Jolyon Ralph, Gene Spafford, y Ernie Wright.

John Foust también ayudó a escribir varios de los artículos de formatos de archivo.

Gracias también a Nathan Cass y Mark Starr de Unisys quienes nos ayudaron a comprender las complejidades del problema de la patente Unisys/CompuServe/LZW; a John Dockery quien hizo investigación en línea de CompuServe y AOL por nosotros; y a Paula Ferguson y Andrew Schulman de ORA quienes nos aconsejaron sobre ciertos formatos.

Gracias especiales a aquellos que revisaron el producto y el CD-ROM en varias etapas. Lee Estrin, Kerrie Kennedy, y Mike Kaltschnee. Y gracias a Ken DeCanio, quien hizo el desarrollo del software para Macintosh por nosotros.

Estamos agradecidos con los muchos autores de software que nos permitieron incluir sus paquetes en la nueva versión del CD-ROM. Mark Adler, Daniel Baker, Sean Barger, John Bradley, Ken Carlino, Bill Cotton, John Cristy, Lee Daniel Crocker, Stefan Eckart, Debbie Eddy, Michael Fitzpatrick, R. Mark Fleming, Chad Fogg, Martin Fong, Oliver Fromme, Jim Frost, Jean-loup Gailly, Gary Gehman, Aaron Giles, Greaeme Gill, Ed Hamrick, Maynard Handley, Paul Ho, Gareth Hunt, Peter Lerup, Chris Kommic, Markus Kuhn, Andreas Lampen, David Lane, Tom Lane, Sam Leffler, Alexander Lehmann, Thorsten Lemke, Andreas Ley, Leonardo Haddad Loureiro, Michael Mauldin, Kelly McKiernan, Douglas Mink, Kevin Mitchell, John Montbriand, Bob Montgomery, Joe Oliphant, Yves Piguet, Igor Plotnikov, Jef Poskanzer, Wayne Rasband, Steve Rimmer, Keith Rule, Jonathan Schafer, Guy Eric Schalnat, Paul Schmidt, David Schooley, Shiva Shenoy, Eric Toonen, Willem A.J. van Schaik, Archibald Warnock, Kevin Woolley, Ken Yee, y Norman Yee.

Y gracias a las organizaciones que nos ayudaron en varias maneras a adquirir o revisar especificaciones, suministrar software, y de otra manera mover este proyecto en el camino: 3D/Eye, Adobe, Advance Enterprises, Alchemy Mindworks, Anagrafyxx Software, Andrew Consortium, Artemis Software, AUI/NRAO, Beyond Midnight Software, Boxtop Software, Dr. Dobb's Journal, Equilibrium, Group 42, Hamrick Software, HyperAct, Inset, i2 Technologies, ISEP/INESC, JASC Inc., Kamyan Software, Lemke Software, Magic Bullet Communications, Mmedia Research Corporation, National Institutes of Health, NOAO/IRAF, Photodex, Piclab, Pittsburgh Supercomputing Center, Quarterdeck, Smithsonian Astrophysical Observatory, Spyglass, St. Mary's University, Sun Microsystems, Sverdlup Technology, TrueVision, Ulead Systems, Unisys, Woolleysoft, y Zoner.

Y una vez más, notas nuestras gracias a la gente de O'Reilly y Asociados, quienes volvieron realidad la visión de hacer este libro un verdadero producto en línea: Linda Walsh, la administradora del producto; Norm Walsh, quien armó el CD-ROM/Producto de Internet; Eddie Freedman, quien diseñó la interfaz de usuario y el look and feel final del producto, así como la pasta del libro; Debby Russel, nuestra editora una vez más; Gigi Estabrook, quien escribió el texto en línea y organizó el software; Sue Willing, quien adquirió permisos y escribió un poco también; Sheryl Avruch, la cuidadora de la agenda y el director de producción; David Futato, el administrador de producción para el libro; Nancy Priest, quien diseñó el formato interior; Chris Reilley, quien hizo las figuras; y Seth Maislin, quien produjo el índice.

Finalmente,

Este libro está dedicado a mi hijo, James Alexander Ozbirn Murray, a su madre, Katherine.
                                                                               James D. Murray

Para todos los seres sensibles trabajando con formatos de archivo gráficos.
                                                                               William vanRyper

 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;=_ؼ