Sha256: eca47b7eaa662ba40739d1e8dbc6b841efdc81fca198c9fadacd629e072611d8
Contents?: true
Size: 1.51 KB
Versions: 20
Compression:
Stored size: 1.51 KB
Contents
module Ddr module Derivatives class PtifGenerator < Generator def self.output_mime_type "image/tiff" end def generate case source_depth.strip when '16' Dir.mktmpdir do |dir| temp_8_bit = make_8_bit(dir) run_generator(temp_8_bit) end when '8' run_generator(source) else raise Ddr::Models::DerivativeGenerationFailure, "Unexpected depth #{source_depth} for source file #{Ddr::Utils.file_path(source)}" end end private def run_generator(source_to_use) command = "#{vips_command} im_vips2tiff #{Ddr::Utils.file_path(source_to_use)} #{Ddr::Utils.file_path(output)}:#{options}" `#{command}` $?.exitstatus end def make_8_bit(tempdir) temp_8_bit = File.new(File.join(tempdir, "temp_8_bit.v"), 'wb') command = "vips im_msb #{Ddr::Utils.file_path(source)} #{Ddr::Utils::file_path(temp_8_bit)}" `#{command}` exitstatus = $?.exitstatus if exitstatus == 0 return temp_8_bit else raise Ddr::Models::DerivativeGenerationFailure, "Error converting #{Ddr::Utils.file_path(source)} to 8-bit" end end def source_depth `identify -quiet -format '%[depth]' #{Ddr::Utils.file_path(source)}[0]` end def vips_command Ddr::Models.vips_path ? File.join(Ddr::Models.vips_path, 'vips') : 'vips' end end end end
Version data entries
20 entries across 20 versions & 1 rubygems