class Ojo::FileSizer
Public Instance Methods
make_files_same_size(file_1, file_2)
click to toggle source
# File lib/ojo/file_sizer.rb, line 3 def make_files_same_size(file_1, file_2) dim_1 = get_file_dimensions(file_1) dim_2 = get_file_dimensions(file_2) unless dim_1 == dim_2 x, y = max_dimensions(dim_1, dim_2) add_extra_to_file x, y, file_1 add_extra_to_file x, y, file_2 end end
Private Instance Methods
add_extra_to_file(x, y, filename)
click to toggle source
# File lib/ojo/file_sizer.rb, line 27 def add_extra_to_file(x, y, filename) basename = File.basename(filename, '.*') temp_filename = File.join(File.dirname(filename), "#{basename}_tmp.png") make_canvas x, y, temp_filename im = "convert #{temp_filename} #{filename} -composite #{temp_filename}" ::Ojo::ImageMagician.new.make_magic(im) FileUtils.mv(temp_filename, filename) end
get_file_dimensions(file)
click to toggle source
# File lib/ojo/file_sizer.rb, line 16 def get_file_dimensions(file) im = "identify -format '%[fx:w]x%[fx:h]' #{file}" output = nil status = Open4::popen4(im) do |pid, stdin, stdout, stderr| output = stdout.read end raise "problem getting dimensions of #{file}" unless status.success? output.chomp end
make_canvas(x, y, filename)
click to toggle source
# File lib/ojo/file_sizer.rb, line 47 def make_canvas(x, y, filename) im = "convert -size #{x}x#{y} canvas:yellow #{filename}" ::Ojo::ImageMagician.new.make_magic(im) end
max_dimensions(dim_1, dim_2)
click to toggle source
# File lib/ojo/file_sizer.rb, line 38 def max_dimensions(dim_1, dim_2) x1, y1 = dim_1.split('x') x2, y2 = dim_2.split('x') x = [x1, x2].max y = [y1, y2].max [x, y] end