Sha256: 2dfdcfd30885558353f7b1e59d5b5eb5151c72e298a0e5b81a988536a9add41e

Contents?: true

Size: 1.13 KB

Versions: 9

Compression:

Stored size: 1.13 KB

Contents

class PSD
  # Various helper methods that make accessing PSD data easier since it's
  # split up among various sections.
  module Helpers
    # Width of the entire PSD document, in pixels.
    def width
      header.cols
    end

    # Height of the entire PSD document, in pixels.
    def height
      header.rows
    end

    # All of the layers in this document, including section divider layers.
    def layers
      layer_mask.layers
    end

    # All of the layers, but filters out the section dividers.
    def actual_layers
      layers.delete_if { |l| l.folder? || l.folder_end? }
    end

    # All of the folders in the document.
    def folders
      layers.select { |l| l.folder? }
    end

    # Constructs a tree of the current document for easy traversal and data access.
    def tree
      @root ||= PSD::Node::Root.new(self)
    end

    def resource(id)
      @resources[id].nil? ? nil : @resources[id].data
    end

    def layer_comps
      resource(:layer_comps).to_a
    end

    def guides
      resource(:guides).to_a
    end

    def slices
      @slices ||= resource(:slices).to_a.map { |s| Slice.new(self, s) }
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
psd-3.9.0 lib/psd/helpers.rb
psd-3.8.0 lib/psd/helpers.rb
psd-3.7.0 lib/psd/helpers.rb
psd-3.6.0 lib/psd/helpers.rb
psd-3.5.0 lib/psd/helpers.rb
psd-3.4.0 lib/psd/helpers.rb
psd-3.3.3 lib/psd/helpers.rb
psd-3.3.2 lib/psd/helpers.rb
psd-3.3.1 lib/psd/helpers.rb