Zenn Dev 8chikuwa3 Articles 7691c6e1d076ae
ImageMagicで画像の一括リサイズ
- URL: https://zenn.dev/8chikuwa3/articles/7691c6e1d076ae
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: オンプレミスのファイルサーバで高解像度写真がストレージを圧迫していた問題に対し、ImageMagickとPowerShellを組み合わせて1MB以上のJPGファイルを一括リサイズするスクリプトを実装した実践記録。ImageMagickのPortable版を使うことで実行環境を汚さず、magick.exeのmogrifyコマンドで縦横最大1280pxにリサイズする。リサイズ後にファイル更新日時が書き変わる問題を回避するため、Exifの撮影日時またはリサイズ前の更新日時をSet-ItemPropertyで復元する処理も組み込まれている。
詳細
- 用途: オンプレファイルサーバの容量逼迫対策として高解像度写真を一括縮小
- 使用ツール: ImageMagick Portable版(実行環境を汚さない)
- 抽出条件: 1MB以上かつ拡張子.jpgのファイル(Get-ChildItemで再帰検索)
- リサイズ設定: magick.exe mogrify -quality 100 -resize “1280x1280>” (縦横どちらかが1280pxに収まるよう縮小)
- 日時復元処理:
- Exif PropertyItem Id=36867(撮影日時)を取得し、nullまたは"0000:00:00"の場合はLastWriteTimeを使用
- yyyy:mm:dd形式をyyyy/mm/ddに変換してSet-ItemPropertyで復元
- BatファイルからPowerShell起動してエラーログをリダイレクト保存する構成
- 注意: 画像ファイルによってエラーが発生する場合があり、適宜調整が必要