Adobe Photoshop_ 2.5 File Format =A81992 Thomas Knoll =A81993 Adobe Systems, Inc. Photoshop 2.5 format was designed to be fast and easy to read and write, while solving a couple of problems with Photoshop 2.0 format: (1) It is data fork only, thus cross-platform. (2) It uses optional RLE compression, so simple images and mask channels can be saved much more compactly. The Macintosh file type code is '8BPS'. The DOS extension is '.PSD'. All information is stored in big-endian byte order, so little-endian machines will have to swap bytes when reading and writing. The following sections describe the information stored in the file's data fork, in order. 1. Signature (4 bytes) Always equal to '8BPS' for this format. Do not try to read the file if the signature does not match this value. 2. Version (2 bytes) Always equal to 1 for this format. Do not try to read the file if the version number does not match this value. 3. Reserved (6 bytes) Readers should ignore these bytes, and writers should write zeros. 4. Channels (2 bytes) The number of channels in the image, including any alpha channels. = Supported range is 1 to 16 for Photoshop 2.5. 5. Rows (4 bytes) The height of the image in pixels. Supported range is 1 to 30000 for Photoshop 2.5. 6. Columns (4 bytes) The width of the image in pixels. Supported range is 1 to 30000 for Photoshop 2.5. 7. Depth (2 bytes) The number of bits per channel. Supported values are 1 and 8 for Photoshop 2.5. 8. Mode (2 bytes) The color mode of the file. Supported values are: Bitmap =3D 0, Grayscale =3D 1, Indexed Color =3D 2, RGB Color =3D 3, CMYK Color =3D 4, Multichannel =3D 7, Duotone =3D 8, Lab Color =3D 9. 9. Mode Data (4 byte length + variable) Contains the required data to define the color mode. For indexed color images, the count will be equal to 768, and the mode data will contain the color table for the image, in non-interleaved order. For duotone images, the mode data will contain the duotone specification, the format of which is not documented. Non-Photoshop readers can treat the duotone image as a grayscale image, and keep the duotone specification around as a black box for use when saving the file. For all other modes, the byte count is zero. 10. Image Resources (4 byte length + variable) Contains a Photoshop 2.5 image resources block, the format of which is documented separately. Information contained in this block includes the image's resolution, and pen tool paths. 11. Reserved Data (4 byte length + variable) Reserved for future use. Readers should skip this, and writers should write a zero length block. 12. Compression (2 bytes) Two values are currently define: 0 =3D Raw Data, 1 =3D RLE compressed. 13. Image Data (variable) Image data is stored in planar order, e.g. all the red data, all the green data, etc. Each plane is stored in scanline order, with no pad bytes. If the compression code is 0, the image data is just the raw image data. If the compression code is 1, the image data starts with the byte counts for all the scan lines (rows * channels), with each count stored as a two-byte value. The RLE compressed data follows, with each scan line compressed separately. The RLE compression is the same compression algorithm used by the Macintosh ROM routine PackBits, and the TIFF standard.