Sha256: 18a3c3bd38e2f5d48e2cdf5711b581271ec0c323b0e2cb1f9a58e39d51609049

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

module Riiif
  module Size
    # The width and height of the returned image is scaled to n% of the width and height
    # of the extracted region. The aspect ratio of the returned image is the same as that
    # of the extracted region.
    class Percent < Resize
      def initialize(info, percentage)
        @image_info = info
        @percentage = percentage
      end

      attr_reader :percentage

      # @return [String] a resize directive for imagemagick to use
      def to_imagemagick
        "#{percentage}%"
      end

      # @return [Integer] the height in pixels
      def height
        percent_of(image_info.height)
      end

      # @return [Integer] the width in pixels
      def width
        percent_of(image_info.width)
      end

      # @param [Integer] factor number of times to reduce by 1/2
      def reduce(factor)
        pct = percentage.to_f * 2**factor
        Percent.new(image_info, pct)
      end

      private

        # @param [Integer] value a value to convert to the percentage
        # @return [Float]
        def percent_of(value)
          value * Integer(percentage).to_f / 100
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
riiif-2.0.0.beta2 app/services/riiif/size/percent.rb
riiif-2.0.0.beta1 app/services/riiif/size/percent.rb