module Scene7::Crop

Public Class Methods

convert_from_scale_first_and_format(params, additional_params = {}) click to toggle source
# File lib/scene7/crop.rb, line 5
def self.convert_from_scale_first_and_format(params, additional_params = {})
  format_url_params convert_params_from_scale_first(params), additional_params
end
convert_params_from_scale_first(orig_params) click to toggle source
# File lib/scene7/crop.rb, line 17
def self.convert_params_from_scale_first(orig_params)
  {}.tap do |params|
    scale_factor = orig_params[:scale_factor].to_f
    params[:scale_factor] = 1.0 / scale_factor
    params[:height] = (orig_params[:height].to_f / scale_factor).round
    params[:width] = (orig_params[:width].to_f / scale_factor).round
    params[:x] = (orig_params[:x].to_f / scale_factor).round
    params[:y] = (orig_params[:y].to_f / scale_factor).round
    params[:quality] = orig_params[:quality] || 95
  end
end
format_url_params(params, additional_params = {}) click to toggle source
# File lib/scene7/crop.rb, line 9
def self.format_url_params(params, additional_params = {})
  require 'cgi' unless defined?(CGI) && defined?(CGI::escape)

  query = "scl=#{params.delete(:scale_factor)}&crop=#{params.delete(:x).round},#{params.delete(:y).round},#{params.delete(:width).round},#{params.delete(:height).round}&qlt=#{params.delete(:quality)}"
  query << "&" + additional_params.map {|k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&') if additional_params.length > 0
  query
end