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 — Adobe Photoshop

Formato de Archivo — Adobe Photoshop


NOMBRE: Adobe Photoshop 3.0
TAMBIÉN CONOCIDO COMO: PSD, Adobe PSD, Photoshop 3.0
TIPO: Mapa de bits
COLORES: Ilimitados
COMPRESIÓN: Descomprimido, RLE
TAMAÑO MÁXIMO DE IMAGEN: 30,000x30,000
MÚLTIPLES IMÁGENES POR ARCHIVO: No
FORMATO NUMÉRICO: Big Endian
ORIGINADOR: Adobe
PLATAFORMA: Microsoft Windows, Apple Macintosh
APLICACIONES SOPORTADAS: Adobe Photoshop, Adobe Premiere, programas de publicación de escritorio
ESPECIFICACIÓN EN CD:
CÓDIGO EN CD: No
IMÁGENES EN CD: No
MIRA TAMBIÉN: MacPaint, TIFF
UTILIZACIÓN: Almacenamiento de imágenes alteradas o manipuladas en el entorno de Adobe Photoshop.
COMENTARIOS: Un formato flexible fácil de leer y escribir pero que carece de un esquema superior de compresión. Provee soporte especialmente bueno para diferentes esquemas de almacenamiento de color.

Resumen

Adobe Photoshop es probablemente el programa comercial de manipulación y procesamiento de imágenes de mapa de bits más completo en características y más altamente respetado en los mundos de la PC y Macintosh. Su amplia distribución ha significado que los datos de imagen a menudo se dejan en formatos de archivo PSD y pueden persistir en esta forma después de que los datos de imagen originales tengan mucho tiempo de haber desaparecido.

Los usuarios de Photoshop a menudo son profesionales que trabajan ocn imágenes en color verdadero. Las imágenes pueden ser muy grandes, y se espera que los usuarios de Photoshop tengan memoria adecuada para cargar y manipular imágenes grandes. Adobe ha elegido optimizar la velocidad de lectura y escritura en el sistema Photoshop, y esto se refleja en la compresión RLE incorporada en el formato PSD. Por lo tanto, los archivos no son tan pequeños como podrían serlo usando otro método de compresión. Si bien esto tiene sentido en el contexto de una estación de trabajo equipada con Photoshop, la carencia de un esquema de compresión superior probablemente ha evitado que PSD se convierta en un formato de intercambio de propósito general más popular. Ya que PSD es un formato específico de la aplicación, debes esperar a que cambie en el futuro.

Bajo Microsoft Windows, los archivos de Photoshop se almacenan con el sufijo PSD, y pueden identificarse al buscar el valor de ID de archivo 8BPS. En la Macintosh, los archivos Photoshop solo son forks de recursos, y se reconocen por el valor de ID 8BPS.

Versiones anteriores del formato no tenían compresión y estaban limitadas a la plataforma Macintosh.



Organización del Archivo

Los archivos PSD consisten de una cabecera y tres secciones informacionales, llamados el Bloque de Modo, el Bloque de Recursos de Imagen, y el Bloque de Información de Capa y Máscara, respectivamente. Estas están seguidas por los datos de imagen en cuestión. La cabecera es una serie de campos fijos, y los otros bloques tienen longitud variable.

Cabecera
Bloque de Datos de Modo de Color
Bloque de Recursos de Imagen
Bloque de Información de Capa y Máscara
Datos de Imagen



Detalles del Archivo

Esta sección describe los detalles de las varias secciones de un archivo PSD:

Cabecera

La cabecera tiene 26 bytes de longitud y está estructurada de la siguiente forma:

typedef struct _PSD_HEADER
{
   BYTE Signature[4];   /* ID de archivo "8BPS" */
   WORD Version;        /* Número de versión, siempre 1 */
   BYTE Reserved[6];    /* Reservado, debe ponerse a cero */
   WORD Channels;       /* Número de canales de color (1-24) incluyendo canales
						   alpha */
   LONG Rows;           /* Altura de la imagen en pixeles (1-30000) */
   LONG Columns;        /* Anchura de la imagen en pixeles (1-30000) */
   WORD Depth;          /* Número de bits por canal (1, 8, y 16) */
   WORD Mode;           /* Modo de color */
} PSD_HEADER;

Solo los valores de canal 1-16 son soportados en los archivos de v2.5. Además, en la versión 2.5, solo los valores de Profundidad de 1 y 8 bits por canal son soportados.

Los datos en el campo de modo especifican cómo ha de interpretarse la imagen.

Modo    Descripción

0
1
2
3
4
7
8
9
Mapa de bits (monocromático)
Escala de grises
Color indexado (color de paleta)
Color RGB
Color CMYK
Color multicanal
Duotono (halftone)
Color de laboratorio

Bloque de Datos de Modo de Color

A continuación de la cabecera está el loque de Datos de Modo de Color. Al inicio de este bloque está un número LONG, en formato Big Endian, que especifica la longitud del bloque en bytes. La naturaleza de los siguientes datos está relacionado al valor del campo de modo de la cabecera. Si el valor del campo de modo es cualquier cosa diferente de 2 o 6, la longitud del bloque será cero, y no le seguirán datos al campo de longitud de 4 bytes. Si el valor del campo de modo es 2, sin embargo, lo que significa color indexado, los siguientes 768 bytes contendrán una paleta de 256 colores. Si el valor del campo de modo es 6, lo que significa datos duotono, los datos que le siguen presumiblemente consisten de parámetros de pantalla y otra información relacionada. Desafortunadamente, esto no está documentado de forma intencional por Adobe, y a los lectores que no son de Photoshop se les aconseja tratar las imágenes duotono como imágenes de escala de grises.

Bloque de Datos de Modo de Color

Siguiendo al bloque de Datos de Modo de Color está el bloque de Recursos de Imagen. Como con el bloque de Datos de Modo de Color, los primeros cuatro bytes son un número LONG en formato Big Endian que especifican la longitud del bloque. Los siguientes datos consisten de datos que no son de pixeles asociados con una imagen. La información en el bloque de Recursos de Imagen se almacenaba en el fork de recursos en versiones iniciales de Photoshop que corrían en la plataforma Macintosh.

struct _ColorModeDataBlock
{
	BYTE Type[4];  /* Siempre "8BIM" */
	WORD ID;       /* (Ver la tabla a continuación) */
	BYTE Name[];   /* Cadena de longitud par en formato Pascal, 2 bytes o mayor */
	LONG Size;     /* Longitud de datos de recursos, en bytes */
	BYTE Data[];   /* Datos de recursos, rellenado a una longitud par */
};

El formato de los datos se determina por el valor en el campo de ID, el cual puede tener los siguientes valores:

ID    Formato de Datos    Descripción

03e8 WORD[5] Canales, filas, columnas, profundidad y modo
03e9 Información opcional del administración de impresión de Macintosh
03eb Tabla de color indexada
03ed (Mirar a continuación) Información de resolución
03ee BYTE[] Nombres de canal alpha (cadenas en formato Pascal)
03ef (Mirar a continuación) Información de display para cada canal
03f0 BYTE[] Cadena opcional de subtítulo en formato Pascal
03f1 LONG, WORD Anchura de borde de punto fijo, unidades de borde (ver a continuación)
03f2 Color de fondo
03f3 BYTE[8] Banderas de impresión (ver a continuación)
03f4 Información de escala de grises y halftoning
03f5 Información de halftoning de color
03f6 Información de halftoning duotono
03f7 Función de transferencia de escala de grises y multicanal
03f8 Funciones de transferencia de color
03f9 Funciones de transferencia duotono
03fa Información de imagen duotono
03fb BYTE[2] Valor efectivo de blanco y negro para rango de punto
03fc
03fd Opciones EPS
03fe WORD, BYTE ID de canal de máscara rápida, bandera para la máscara inicialmente vacía
03ff
0400 WORD Índice de la capa destino (0=del fondo)
0401 Ruta trabajando (working path)
0402 WORD[] Información de grupo de capa, ID de grupo para arrastrar grupos
0403
0404 Registro IPTC-NAA
0405 Modo de imagen para archivos en formato crudo
0406 Calidad de JPEG (interno de Adobe)
07d0-0bb6 Información de ruta guardada
0bb7 Nombre de ruta de recorte
2710 (Ver a continuación) Información de banderas de impresión

Los valores de ID 03e8, 03eb, 03ff y 0403 se consideran obsoletos. Los valores 03e8 y 03eb están asociados con Photoshop v2.0. El formato de datos para los valores 03f2, 03f4-03fa, 03fc, 03fd, 0405-0bb7 no está documentado intencionalmente por Adobe, o hacen falta datos. Por favor refiérete al SDK de Adobe Photoshop para información sobre obtener la definición de la estructura IPTC-NAA registro 2.

El valor de ID 03ed indica que los datos están en la forma de una estructura ResolutionInfo:

typedef struct _ResolutionInfo
{
   LONG hRes;              /* Número de punto fijo: pixeles por pulgada */
   WORD hResUnit;          /* 1=pixeles por pulgada, 2=pixeles por centímetro */
   WORD WidthUnit;         /* 1=pulgada, 2=cm, 3=pt, 4=picas, 5=columnas */
   LONG vRes;              /* Número de punto fijo: pixeles por pulgada */
   WORD vResUnit;          /* 1=pixeles por pulgada, 2=pixeles por centímetro */
   WORD HeightUnit;        /* 1=pulgadas, 2=cm, 3=pt, 4=picas, 5=columnas */
} RESOLUTIONINFO;

El valor de ID 03ef indica que los datos están almacenados como una estructura DisplayInfo, la cual contiene información de visualización asociada con cada canal:

typedef _DisplayInfo
{
   WORD  ColorSpace;
   WORD  Color[4];
   WORD  Opacity;          /* 0-100 */
   BYTE  Kind;             /* 0=seleccionado, 1=protegido */
   BYTE  Padding;          /* Siempre cero */
} DISPLAYINFO;

El valor de ID 03f3 indica que los datos son una serie de ocho banderas, indicando el estado de activación de los elementos de etiquetas, marcas de recorte, barras de color, marcas de registración, negativas, volteo (flip), interpolar y de subtítulo en el cuadro de diálogo Page Setup de Photoshop.

El valor de ID 2710 señala que la sección de Datos contiene un número de versión de longitud de WORD (debería ser 1), una bandera de longitud de BYTE indicando marcas de recorte, un campo de longitud de BYTE (debería ser 0), un valor de anchura de sangría de longitud de LONG, y un WORD indicando la escala de la anchura de la sangría.

Bloque de Información de Capa y Máscara

Siguiendo el bloque de Recursos de Imagen está el bloque de Información de Capa y Máscara, estructurado como lo están los bloques de Datos de Modo de Color y de Recursos de Imagen. En los archivos PSD producidos por Photoshop v2.5 el bloque de Información de Capa y Máscara de 4 bytes de campo de longitud contiene un número LONG puesto a cero, como también los archivos de la versión 3.0 que no contienen información de capa o máscara. A los escritores de archivo PSD se les avisa que esta es un área que probablemente será alterada o expandida en versiones futuras del formato PSD. La información de capa en este bloque está almacenada primero, seguida por información de máscara.

Información de Capa

La sección de Capa del bloque de Información de Capa y Máscara comienzan con un valor LONG que especifica la longitud de la sección de Información de Capa. Esta es seguida por un valor de cuenta WORD del número de Registros de Capa a seguir. Los Registros de Capa siguen en secuencia; una descripción de su organización sigue a continuación. Nota que los Registros de Capa varían en tamaño entre uno y otro archivo dependiendo del número de canales en la imagen. Hay un Registro de Capa para cada capa en la imagen.

Estructura de Datos    Nombre de Campo    Descripción

LONG Parte alta Rectángulo que delimita la capa
LONG Izquierda
LONG Parte baja
LONG Derecha
WORD Canales Número de canales en la capa

La siguiente área que sigue contiene una serie de registros de Información de Longitud de Canal (Channel Length Info, o CLI) definidos de la siguiente forma:

typedef struct _CLI
{
  WORD  ChannelID;            /* Campo 1 de Channel Length Info */
  LONG  LengthOfChannelData;  /* Campo 2 de Channel Length Info */
} CLI;
Estructura de Datos    Nombre de Campo    Descripción

CLI Información de Longitud de Cadena #1
CLI Información de Longitud de Cadena #2
.
.
.
CLI Información de Longitud de Cadena #n
BYTE[4] Firma de Modo de Mezcla Siempre "8BIM"
BYTE[4] Clave de Modo de Mezcla (Ver tabla siguiente)
BYTE Opacidad 0-255 (transparente a opaco)
BYTE Recortado (clipping) 0=base, 1=no base
BTE Banderas Bit 0 = protegido a transparencia, bit 1 = visible
BYTE Relleno Puesto a cero
LONG ExtraDataSize; (tamaño de datos extra)

La siguiente área es la sección de datos de Máscara de Capa. Si no hay Máscara de Capa, el Tamaño o Size (el primer valor LONG) está a cero, y la sección de datos de Máscara de Capa tiene 4 bytes de tamaño. Si el valor no es cero, la sección de datos de Máscara de Capa tiene 24 bytes de tamaño.

Estructura de Datos    Nombre de Campo    Descripción

LONG Size
LONG Top Rectángulo que delimita la máscara de capa
LONG Izquierda
LONG Parte baja
LONG Derecha
BYTE DefaultColor 0 o 255
BYTE Flags Bit 0 = posición, bit 1 = máscara desactivada, bit 2 = invertir máscara de capa
WORD padding Puesto a cero

La siguiente área contiene información que define los Rangos de Mezcla de Capa. Esto es seguido por una serie de registros que definen los rangos de fuente y destino para cada canal de color. Cada campo de fuente y destino consiste de dos valores de negro (0-255) seguidos por dos valores de blanco (0-255). Cada registro de rango de fuente y destino de canal (Channel Source and Destination Range, o CSDR) tiene el siguiente formato:

typedef struct _CSDR
{
  BYTE Source[4];      /* Primer Rango de Fuente de Canal */
  BYTE Dest[4];        /* Primer Rango de Destino de Canal */
} CSDR;
Estructura de Datos    Nombre de Campo    Descripción

LONG Tamaño Longitud total de datos de mezcla de capa
BYTE[4] Fuente de Mezcla de Gris
BYTE[4] Destino de Mezcla de Gris
CSDR Rango de Fuente de Canal #1
CSDR Rango de Fuente de Canal #2
.
.
.
CSDR Rango de Fuente de Canal #n
BYTE[] Nombre de capa Cadena Pascal, rellenada a múltiplos de 4 bits

El campo de Modo de Mezcla puede contener las siguientes claves ASCII:

Clave    Significado

norm
dark
lite
hue
sat
colr
lum
mul
scrn
diss
over
hLit
sLit
diff
Normal
Oscurecer
Aclarar
Matiz
Saturación
Color
Luminosidad
Multiplicar
Pantalla
Disolver
Superponer
Luz dura
Luz suave
Diferencia

Siguiendo la lista de Registros de Capa están los datos de imagen de canal. Los datos de imagen de canal están almacenados en la forma de mapas de bits de 8 bits. El primer valor WORD contiene información sobre la compresión: 0 indica que los datos no están comprimidos, y 1 indica que los datos están comprimidos con RLE. Siguiendo este WORD están los datos de imagen de canal en cuestión. La longitud de los datos es igual al número de pixeles en la imagen, la cual puede calcularse desde el cuadro delimitador. Sin embargo, los datos pueden estar comprimidos con RLE, usando el algoritmo PackBits descrito a continuación. Si la longitud de la imagen del canal es impar, se inserta un byte de relleno para hacer que el final de la imagen quede en un límite de WORD.

Información de Máscara

La información de máscara consiste de una o más estructuras de información de máscara que tienen el siguiente formato:

Estructura de Datos    Nombre de Campo    Descripción

WORD Espacio de Color de Overlay (No documentado)
BYTE[8] Componentes de Color Componentes de color de 4x2 bytes
WORD Opacidad 0=transparente, 1=opaco
BYTE Tipo (Kind) 0=invertido, 1=protegido, 128=usar valor almacenado
BYTE relleno puesto a cero

Datos de Imagen

Después del bloque de Información de Capa y Máscara está un WORD que contiene un valor que actúa como una bandera de compresión. Si la bandera está activada (a 1), los datos de la imagen están comprimidos con RLE.

Los datos de imagen se almacenan como se indica en la cabeceray el valor de compresión que lo precede. Si los datos están comprimidos, cada línea es precedida por un WORD que contiene un valor que indica la longitud, en bytes, de los datos asociados con esa línea. Las líneas se almacenan en orden de scan line sin relleno. Los datos multiplanares, los cuales pueden o pueden no estar comprimidos, se almacenan como una serie de planos en secuencia. Es decir, los datos rojos se almacenan primero, seguidos por los datos verdes y luego los datos azules. Si los datos son multiplanares, el WORD al inicio de cada línea es el tamaño, en bytes, de los datos totales asociados con cada scan line (filas en la línea multiplicadas por el número de canales).

Los datos se comprimen usando el esquema de codificación de Macintosh ROM PackBit, el cual es también parte del estándar TIFF. El primer byte de los datos de scan line leídos es una cuenta de corrida. Si el MSB está activado, el byte se convierde a su valor de complemento de dos, y el siguiente byte leído se repite ese número de veces. Si el MSB es cero, se agrega uno a la cuenta, y se leen los siguientes RunCount bytes (cuenta de corrida). En pseudocódigo, esto es:

Poner a cero BytesLeidos y Cuenta
Leer la WORD LongitudDeLineaEnBytes

Leer un byte de datos
Incrementar BytesLeidos
  Si el bit alto es uno
    La cuenta es el complemento de dos del byte
    Leer el siguiente byte
    Escribir esta valor el número de veces en Cuenta
  Si el bit alto es cero
    Cuenta es el valor del byte más uno
    Leer el siguiente byte y escribir el valor el número de veces en Cuenta
  Incrementar BytesLeidos
  Si BytesLeidos es igual a LongitudDeLineaEnBytes entonces el scan line está listo

Recuerda que LongitudDeLineaEnBytes se refiere a todos los datos asociados con el scan line actual. Si los datos de imagen son multiplanares, entonces BytesLeidos tendrá que ser ajustado de forma acorde.

Formato de Archivo Crudo (Raw) de Adobe Photoshop

El formato de Archivo Crudo de Photoshop se usa para importar datos hacia Photoshop desde aplicaciones que no pueden escribir los formatos que son reconocidos por Photoshop. El formato Crudo también se usa para exportar datos desde Photoshop que puedan leerse en dichas aplicaciones.

El formato Crudo de archivo es un archivo binario sin comprimir que solo contiene datos de imagen y no tiene información de cabecera o de paleta de color. Los datos de la cabecera deben ingresarse en Photoshop cuando el archivo se importa.

Los datos de archivo Crudo no son más que una serie de valores de pixeles que comienzan desde la esquina superior izquierda en la imagen y continúan hacia abajo. Cada valor está almacenado como un BYTE con un valor en el rango 0 (negro, o menos intenso) a 255 (blanco, o más intenso). Los pixeles RGB siempre se almacenan en orden rojo-verde-azul, y los pixeles CMYK siempre se almacenan en orden cian-magenta-amarillo-clave.

Para importar un archivo crudo, escoge la opción Abrir del menú Archivo, y dale clic a Mostrar Todos los Archivos. Escoge Raw (crudo) desde el menú emergente Archivo, y dale clic a Abrir para desplegar el cuadro de diálogo Crudo (Raw). Ingresa la anchura y altura de la imagen en pixeles (1 a 30,000), número de canales de color (1 para escala de grises y paleta de color, 3 para RGB, 4 para CMYK, y así sucesivamente), y el tamaño de la cabecera (por defecto es 0). Dale clic en OK.

Cuando exportas un archivo crudo, solo los datos de imagen son guardados al archivo, y todos los datos asociados de cabecera y de paleta de color se pierden. Estos datos deben ser reingresados cuando se importan los archivos crudos. Para exportar un archivo crudo, eliga Guardar Como del menú Archivo y Raw (Crudo) desde el menú emergente Guardar Como para desplegar el cuadro de diálogo Raw (Crudo). Ingresa los valores de Tipo de Archivo y Creador de Archivo usados para identificar el archivo Crudo, el valor de cabecera (por defecto es 0), y el Orden de Intercalado/Interleaved (intercalado es por defecto). Da clic en Aceptar/OK.



Para Mayor Información

La fuente primaria de información sobre Photoshop es el siguiente documento, el cual Adobe generosamente nos ha permitido incluir en el CD-ROM que acompaña este libro.

Adobe Photoshop 3.0.4 Software Development Kit, Copyright 1991-1995, Adobe Systems

Alguna información para este artículo provino del siguiente documento, el cual también está incluido en el CD-ROM:

Adobe Photoshop 2.5 Format, Copyright 1992 and 1993, by Thomas Knoll and Adobe Systems, Inc.

Para información adicional, contacta:

Adobe Systems
Developer Support
1585 Charleston Rd.
P.O. Box 7900
Mountain View CA 94039-7900
Voice: 415-961-4400
Voice: 800-344-8335
FAX: 415-961-3769
WWW: http://www.adobe.com/
FTP: ftp://ftp.adobe.com/

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