コンテンツにスキップ
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起動してエラーログをリダイレクト保存する構成
  • 注意: 画像ファイルによってエラーが発生する場合があり、適宜調整が必要