画像をリサイズして取ってくるやつ
そういうツール作ってみた。よくありがちなやつとは思うが 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