Sha256: 0a5202957832671aa7a33ee096a5ca3d435551342369bd72b5bbbb6a92cd66c7

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'dragonfly'
require 'dragonfly_libvips/dimensions'
require 'dragonfly_libvips/plugin'
require 'dragonfly_libvips/version'
require 'vips'

module DragonflyLibvips
  class UnsupportedFormat < RuntimeError; end
  class UnsupportedOutputormat < RuntimeError; end

  CMYK_PROFILE_PATH = File.expand_path('../vendor/cmyk.icm', __dir__)
  EPROFILE_PATH = File.expand_path('../vendor/sRGB_v4_ICC_preference.icc', __dir__)

  SUPPORTED_FORMATS = begin
    output = `vips -l | grep -i ForeignLoad`
    output.scan(/\.(\w{1,4})/).flatten.compact.sort.map(&:downcase).uniq
  end

  SUPPORTED_OUTPUT_FORMATS = begin
    output = `vips -l | grep -i ForeignSave`
    output.scan(/\.(\w{1,4})/).flatten.compact.sort.map(&:downcase).uniq
  end - %w[
    csv
    fit
    fits
    fts
    mat
    pbm
    pfm
    pgm
    ppm
    v
    vips
    webp
  ]

  FORMATS_WITHOUT_PROFILE_SUPPORT = %w[bmp dz gif hdr webp heic]

  private

  def self.stringify_keys(hash = {})
    hash.each_with_object({}) { |(k, v), memo| memo[k.to_s] = v }
  end

  def self.symbolize_keys(hash = {})
    hash.each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dragonfly_libvips-2.4.0 lib/dragonfly_libvips.rb