hugo_insert_image.rb
画像をリサイズして取ってくるやつその2 require 'rmagick' require 'date' require 'fileutils' require 'optparse' # gem install clipboard; 要 gem # sudo apt install xsel; 要 xsel require 'clipboard' # default resize 大きさ = 480 mysize = 480 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 # 移動先は /yymmdd/ date_dir = %Q(#{Date.today.strftime("%Y%m%d")}) # target_dir = ~/blog/static/images/yymmdd target_dir = File.expand_path("~/blog/static/images/#{date_dir}") # ディレクトリが無ければ作る FileUtils.mkdir_p(target_dir) unless File.exist?(target_dir) ARGV.each do |f| if File.extname(f).downcase =~ /.jpe?g|.png/ then #add .png img = Magick::ImageList.new(f) # mysizeより小さい画像は大きくなるのでresizeしない。 img = img.resize_to_fit(mysize, mysize) if [img.rows, img.columns].max > mysize img = img.auto_orient.strip! image_file_name = %Q(#{File.basename(f, ".*")}.webp) img.write(target_dir + "/" + image_file_name) # Clipboardにshortcodeを入れる 実際の使用には '/*'と'*/'を削除する必要あり Clipboard.copy(%Q({{< figure src="/images/#{date_dir}/#{image_file_name}" alt="" title="" width="#{img.rows}" height="#{img.columns}" >}})) # メッセージ puts %Q[#{Clipboard.paste} が clipboard に入ったよ〜] end end 変更履歴 2024-10-14 Monday 画像サイズを指定する ...