Method: PSD::LayerMask#parse

Defined in:
lib/psd/layer_mask.rb

#parseObject

Parse this section, including all of the layers and folders.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/psd/layer_mask.rb', line 26

def parse
  mask_size = @file.read_int
  start_position = @file.tell
  finish = start_position + mask_size

  PSD.logger.debug "Layer mask section: #{start_position} - #{finish}"

  return self if mask_size <= 0

  parse_layers
  parse_global_mask

  consumed_bytes = @file.tell - start_position
  parse_layer_tagged_blocks(mask_size - consumed_bytes)

  # Layers are parsed in reverse order
  layers.reverse!

  # Ensure we're at the end of this section
  @file.seek finish

  self
end