画像をリサイズして取ってくるやつ

そういうツール作ってみた。よくありがちなやつとは思うが for my hugo ってことで。

オプションでサイズと場所を指定できる。(たぶん使わない。)

# coding: utf-8

require 'rmagick'
require 'date'
require 'fileutils'
require 'optparse'

# default resize 大きさ = 480
mysize = 480

# ターゲットディレクトリ
target = "/home/tsut/blog/static/images/"

opt = OptionParser.new
opt.on('-r', '--resize VALUE', 'リサイズする大きさ(px)') { |v| mysize = v.to_i }
opt.on('-t', '--target DIR',   '出力先ディレクトリ') { |v| target = v.to_s }

begin
   opt.parse(ARGV)
rescue OptionParser::InvalidOption => e
   abort "無効なオプション指定が含まれています"
end

# サイズ指定
# mysize = 480
width = height = mysize

# 移動先は /yymmdd/
prefix = "#{Date.today.strftime("%Y%m%d")}"
targetdir = target + "/" + prefix + "/"
# ディレクトリが無ければ作る
FileUtils.mkdir_p(targetdir) unless File.exists?(targetdir)

ARGV.each do |f|
   if File.extname(f).downcase =~ /.jpe?g/ then
      img = Magick::ImageList.new(f)
      # EXIF情報を削除してリサイズ
      img_new = img.strip!.resize_to_fit(width, height)
      # img_new = img.blur_image(20.0, 10.0)
      img_new.write(targetdir + "#{File.basename(f)}")
   end
end