Sha256: 72e37be42547114d162befd89183f2a9abd16936c8ecc340ce8c931a217fa341

Contents?: true

Size: 1.12 KB

Versions: 13

Compression:

Stored size: 1.12 KB

Contents

class PSD
  class Layer
    module PositionAndChannels
      attr_reader :top, :left, :bottom, :right, :cols, :rows
      attr_reader :channels, :channels_info

      alias :width :cols
      alias :height :rows

      private

      def parse_position_and_channels
        start_section(:info)

        @top = @file.read_int
        @left = @file.read_int
        @bottom = @file.read_int
        @right = @file.read_int
        @channels = @file.read_short

        @rows = @bottom - @top
        @cols = @right - @left

        @channels.times do
          channel_id = @file.read_short
          channel_length = @file.read_int

          @channels_info << {id: channel_id, length: channel_length}
        end

        end_section(:info)
      end

      def export_position_and_channels(outfile)
        [@top, @left, @bottom, @right].each { |val| outfile.write_int(val) }
        outfile.write_short(@channels)

        @channels_info.each do |channel_info|
          outfile.write_short channel_info[:id]
          outfile.write_int channel_info[:length]
        end

        @file.seek end_of_section(:info)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
bench9000-0.1 vendor/psd.rb/lib/psd/layer/position_and_channels.rb
psd-2.1.2 lib/psd/layer/position_and_channels.rb
psd-2.1.1 lib/psd/layer/position_and_channels.rb
psd-2.1.0 lib/psd/layer/position_and_channels.rb
psd-2.0.0 lib/psd/layer/position_and_channels.rb
psd-1.5.0 lib/psd/layer/position_and_channels.rb
psd-1.4.5 lib/psd/layer/position_and_channels.rb
psd-1.4.4 lib/psd/layer/position_and_channels.rb
psd-1.4.3 lib/psd/layer/position_and_channels.rb
psd-1.4.2 lib/psd/layer/position_and_channels.rb
psd-1.4.1 lib/psd/layer/position_and_channels.rb
psd-1.4.0 lib/psd/layer/position_and_channels.rb
psd-1.3.3 lib/psd/layer/position_and_channels.rb