RMagickを使って画像を一括してリサイズするスクリプト。Obsidianへ移行したメモに添付されていた画像サイズを圧縮するためにやっつけで作成
require 'RMagick'
include Magick
MAX_PIXEL = 800
MAX_FILE_SIZE = 300000
ARGV.each do |f|
next unless %w(.jpeg .jpg .png .heic .webp).index File.extname(f).downcase
size = File.size(f)
next if size < MAX_FILE_SIZE
img = Magick::Image.read(f).first
next if img.columns <= MAX_PIXEL && img.rows <= MAX_PIXEL
img.resize_to_fit(MAX_PIXEL, MAX_PIXEL).write(f)
puts "#{f}: #{size} -> #{File.size(f)}"
end