Jump To …
README lib / psd / blend_mode.coffee lib / psd / channel_image.coffee lib / psd / color.coffee lib / psd / descriptor.coffee lib / psd / file.coffee lib / psd / header.coffee lib / psd / image.coffee lib / psd / image_export.coffee lib / psd / image_exports / png.coffee lib / psd / image_format.coffee lib / psd / image_formats / layer_raw.coffee lib / psd / image_formats / layer_rle.coffee lib / psd / image_formats / raw.coffee lib / psd / image_formats / rle.coffee lib / psd / image_mode.coffee lib / psd / image_modes / cmyk.coffee lib / psd / image_modes / greyscale.coffee lib / psd / image_modes / rgb.coffee lib / psd / init.coffee lib / psd / layer / blend_modes.coffee lib / psd / layer / blending_ranges.coffee lib / psd / layer / channel_image.coffee lib / psd / layer / helpers.coffee lib / psd / layer / info.coffee lib / psd / layer / mask.coffee lib / psd / layer / name.coffee lib / psd / layer / position_channels.coffee lib / psd / layer.coffee lib / psd / layer_info / blend_clipping_elements.coffee lib / psd / layer_info / blend_interior_elements.coffee lib / psd / layer_info / fill_opacity.coffee lib / psd / layer_info / gradient_fill.coffee lib / psd / layer_info / layer_id.coffee lib / psd / layer_info / layer_name_source.coffee lib / psd / layer_info / legacy_typetool.coffee lib / psd / layer_info / locked.coffee lib / psd / layer_info / metadata.coffee lib / psd / layer_info / nested_section_divider.coffee lib / psd / layer_info / object_effects.coffee lib / psd / layer_info / section_divider.coffee lib / psd / layer_info / solid_color.coffee lib / psd / layer_info / typetool.coffee lib / psd / layer_info / unicode_name.coffee lib / psd / layer_info / vector_mask.coffee lib / psd / layer_info / vector_origination.coffee lib / psd / layer_info / vector_stroke.coffee lib / psd / layer_info / vector_stroke_content.coffee lib / psd / layer_info.coffee lib / psd / layer_mask.coffee lib / psd / lazy_execute.coffee lib / psd / mask.coffee lib / psd / node.coffee lib / psd / nodes / ancestry.coffee lib / psd / nodes / build_preview.coffee lib / psd / nodes / group.coffee lib / psd / nodes / layer.coffee lib / psd / nodes / root.coffee lib / psd / nodes / search.coffee lib / psd / path_record.coffee lib / psd / resource.coffee lib / psd / resource_section.coffee lib / psd / resources / layer_comps.coffee lib / psd / resources.coffee lib / psd / util.coffee lib / psd.coffee shims / init.coffee shims / png.coffee

# header.coffee lib/psd/ |
--- | ---
¶ |
    {Module} = require 'coffeescript-module'
¶ Represents the header of the PSD, which is the first thing always parsed. The header stores important information about the PSD such as the dimensions and the color depth. |
    module.exports = class Header extends Module
      @aliasProperty 'height', 'rows'
      @aliasProperty 'width', 'cols'
¶ All of the color modes are stored internally as a short from 0-15. This is a mapping of that value to a human-readable name. |
      MODES = [
        'Bitmap'
        'GrayScale'
        'IndexedColor'
        'RGBColor'
        'CMYKColor'
        'HSLColor'
        'HSBColor'
        'Multichannel'
        'Duotone'
        'LabColor'
        'Gray16'
        'RGB48'
        'Lab48'
        'CMYK64'
        'DeepMultichannel'
        'Duotone16'
      ]
¶ The signature of the PSD. Should be 8BPS. |
      sig: null
¶ The version of the PSD. Should be 1. |
      version: null
¶ The number of color channels in the PSD. |
      channels: null
¶ The height of the PSD. Can also be accessed with `height`. |
      rows: null
¶ The width of the PSD. Can also be accessed with `width`. |
      cols: null
¶ The bit depth of the PSD. |
      depth: null
¶ The color mode of the PSD. |
      mode: null
¶ Creates a new Header. @param [File] file The PSD file. |
      constructor: (@file) ->
¶ Parses the header data. |
      parse: ->
        @sig = @file.readString(4)
        @version = @file.readUShort()

        @file.seek 6, true

        @channels = @file.readUShort()
        @rows = @height = @file.readUInt()
        @cols = @width = @file.readUInt()
        @depth = @file.readUShort()
        @mode = @file.readUShort()

        colorDataLen = @file.readUInt()
        @file.seek colorDataLen, true
¶ Converts the color mode key to a readable version. |
      modeName: -> MODES[@mode]
¶ Exports all of the header data in a basic object. |
      export: ->
        data = {}
        for key in ['sig', 'version', 'channels', 'rows', 'cols', 'depth', 'mode']
          data[key] = @[key]

        data

generated Tue May 12 2015 10:08:55 GMT-0400 (EDT)