1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#!/usr/bin/ruby
# batch-process a lot of files
#
# this should run in constant memory -- if it doesn't, something has broken
require "vips"
# benchmark thumbnail via a memory buffer
def via_memory(filename, thumbnail_width)
data = IO.binread(filename)
thumb = Vips::Image.thumbnail_buffer data, thumbnail_width, crop: "centre"
thumb.write_to_buffer ".jpg"
end
# benchmark thumbnail via files
def via_files(filename, thumbnail_width)
thumb = Vips::Image.thumbnail filename, thumbnail_width, crop: "centre"
thumb.write_to_buffer ".jpg"
end
ARGV.each do |filename|
puts "processing #{filename} ..."
_thumb = via_memory(filename, 500)
# _thumb = via_files(filename, 500)
end
|