Sha256: 37b7ff9858b08bb69a82aeff7a80859827343137b0792cd36d6510c017caa64d

Contents?: true

Size: 1.63 KB

Versions: 608

Compression:

Stored size: 1.63 KB

Contents

require_relative 'module'

module Frameit
  # Represents the MiniMagick trim bounding box for cropping a text image
  class Trimbox
    attr_accessor :width # width of the trim box
    attr_accessor :height # height of the trim box
    attr_accessor :offset_x # horizontal offset from the canvas to the trim box
    attr_accessor :offset_y # vertical offset from the canvas to the trim box

    # identify_string: A string with syntax "<width>x<height>+<offset_x>+<offset_y>". This is returned by MiniMagick when using function .identify with format("%@"). It is also required for the MiniMagick .crop function.
    def initialize(identify_string)
      UI.user_error!("Trimbox can not be initialised with an empty 'identify_string'.") unless identify_string.length > 0

      # Parse the input syntax "<width>x<height>+<offset_x>+<offset_y>".
      # Extract these 4 parameters into an integer array, by using multiple string separators: "x" and "+":
      trim_values = identify_string.split(/[x+]/).map(&:to_i)

      # If 'identify_string' doesn't have the expected syntax with 4 parameters, show error:
      UI.user_error!("Trimbox is initialised with an invalid value for 'identify_string'.") unless trim_values.length == 4

      # Assign instance variables:
      @width = trim_values[0]
      @height = trim_values[1]
      @offset_x = trim_values[2]
      @offset_y = trim_values[3]
    end

    # Get the trimbox parameters in the MiniMagick string format
    def string_format
      # Convert trim box parameters to string with syntax: "<width>x<height>+<offset_x>+<offset_y>":
      return "#{@width}x#{@height}+#{@offset_x}+#{@offset_y}"
    end
  end
end

Version data entries

608 entries across 608 versions & 2 rubygems

Version Path
fastlane-2.196.0 frameit/lib/frameit/trim_box.rb
fastlane-2.195.0 frameit/lib/frameit/trim_box.rb
fastlane-2.194.0 frameit/lib/frameit/trim_box.rb
fastlane-2.193.1 frameit/lib/frameit/trim_box.rb
fastlane-2.193.0 frameit/lib/frameit/trim_box.rb
fastlane-2.192.0 frameit/lib/frameit/trim_box.rb
fastlane-2.191.0 frameit/lib/frameit/trim_box.rb
fastlane-2.190.0 frameit/lib/frameit/trim_box.rb
fastlane-2.189.0 frameit/lib/frameit/trim_box.rb
fastlane-2.188.0 frameit/lib/frameit/trim_box.rb
fastlane-2.187.0 frameit/lib/frameit/trim_box.rb
fastlane-2.186.0 frameit/lib/frameit/trim_box.rb
fastlane-2.185.1 frameit/lib/frameit/trim_box.rb
fastlane-2.185.0 frameit/lib/frameit/trim_box.rb
fastlane-2.184.1 frameit/lib/frameit/trim_box.rb
fastlane-2.184.0 frameit/lib/frameit/trim_box.rb
fastlane-2.183.2 frameit/lib/frameit/trim_box.rb
fastlane-2.183.1 frameit/lib/frameit/trim_box.rb
fastlane-2.183.0 frameit/lib/frameit/trim_box.rb
fastlane-2.182.0 frameit/lib/frameit/trim_box.rb