複数の静止画像からのサムネイル画像の一括生成
Ruby プログラムの例
#! ruby -Ks # coding: windows-31j # usage: ruby genthumb.rb filelist.rb 100x100 thumb png index.html all.png 20 # ruby genthumb.rb [file name] [size] [dir] [extension] # This program # generate thumbnails # generate image file list # input : a YAML file that discribe pattern(s) of file names # [example of "filelist.rb"] # $a = <<-EOS # - path: /home/www/teaimage/20100524syouhin # pattern: *.JPG # - path: /home/www/teaimage/20100524syouhin_data # pattern: *.JPG # EOS # output : thumbnails, HTML file, image file require 'rubygems' require 'progressbar' require 'yaml' require 'digest/sha2' load ARGV[0] thumb_size = ARGV[1] thumb_sub_dir = ARGV[2] thumb_ext = ARGV[3] thumb_index_html = ARGV[4] thumb_images_file = ARGV[5] thumb_images_size = ARGV[6] b = YAML.load( $a ) for i in b # from a pattern to a file list files = Dir.glob( i["path"] + "/" + i["pattern"] ) progress_bar = ProgressBar.new( File.basename(i["path"]), files.length ) # create thumbnails directory if i["path"][0] = "/" then path = i["path"] else path = Dir.pwd + "/" + i["path"] end thumb_dir = path + "/" + thumb_sub_dir system("mkdir", thumb_dir) f = File.open( thumb_dir + "/" + thumb_index_html, "w" ) for j in files basename = File.basename( j ) basename2 = File.basename( basename, File.extname( basename ) ) imfile = path + "/" + basename system ( "convert " + imfile.gsub("(","\(").gsub(")","\)") + " -thumbnail " + thumb_size + " " + thumb_dir + "/" + basename2.gsub("(","\(").gsub(")","\)") + "." + thumb_ext ) progress_bar.inc f.print( "<a href=\"../" + basename + "\"><img src=\"" + basename2.gsub("(","\(").gsub(")","\)") + "." + thumb_ext + "\"></a>" ) end progress_bar.finish f.close system("rm -f " + thumb_dir+ "/" + thumb_images_file ) system( "montage -resize " + thumb_images_size + " -geometry +2+2 " + thumb_dir + "/*." + thumb_ext + " " + thumb_dir + "/" + thumb_images_file ) end # system("rm -f " + i["path"] + "/thumbs/all_thumb.png" ) # system( "convert " + i["path"] + "/thumbs/all.png -resize 240 " + i["path"] + "/thumbs/all_thumb.png" )
使用法の例
下の実行画面では次のように設定している