Header: - Includes number of channels, image length/width, and bit depth, etc. Color Mode Data: - For palette data, which is rare, so this part of the file almost never is present. Image Resources: - Stapled-on ICC Profile - XMP metadata - JPEG preview of contained image - Vector Bezier Curve information (for Vector layers). - Global "background" color of transparent parts of image. - And other global-ish data for the file Image Layers Section: - N number of records for each layer, each containing important info like the layer's "bounding rectangle", and also tags such as - Blend mode (Normal, Darken, Lighten, Multiply, etc.) - Tags telling us its ASCII and Unicode names. - Flags indicating whether the rastered copy found later in the file is to be ignored (as is common with Vector layers). - Tags indicating if we're an Adjustment layer (such as Brightness/Exposure/Contrast adjustment, etc.) - Basically all the meaty data describing each layer. - N number of records for each layer's raster data, usually in RLE/PackBits format, each concatenated onto the next. The order of the rasterized data is identical to the previous layer information above (and even Vector layers have rasterization data, to serve as backup for applications that can't interpret the complex Vector data correctly). Then lastly, the complete, finalized rasterized copy of the entire documented is stapled to the very end. It's not mandatory however (Photoshop will skip appending it if Compatibility Mode is off when saving the PSD file), but will be handy for applications that don't want to deal with the complexity of, well, implmenting Photoshop.