LoginSignup
0
0

Windows で画像ファイルを一括変換する (ImageMagick)

Last updated at Posted at 2024-05-01

要約

Windows の PowerShell 上で複数の画像ファイルのフォーマットを変換するには, 以下のようにします.

> dir -Name * | % {magick convert "$_" "$_.png"}

背景

iPhone 使用者から LINE で送られてきた画像を Windows に転送すると, 数字だけのファイル名で拡張子が見当たりません. 調べてみると HEIF というフォーマットのようでした.

これらのファイルを, 当初は Gimp で 1 つずつファイルを開いてエクスポートして変換していました. しかしファイル数が増えてくると作業が非常に面倒になったので, コマンドラインで一気に変換できる方法を調べました.

ImageMagick

画像フォーマットの変換には ImageMagick を使います. Windows 用のバイナリを普通にインストールすれば OK です.

Linux などで ImageMagick を使っていた私のような人向けの注意点として, コマンドは convert ではなく, magick convert とする必要があります.

PowerShell

PowerShell でファイル名を得るためには, dir -Name を使います.

そして dir -Name の出力を ImageMagick に渡すには, 次のようにします.

> dir -Name * | % {magick convert "$_" "$_.png"}

$_ にファイル名が入っているので, そこに ".png" を付けたファイルに変換後の画像を保存しています (この構文の細かい意味は理解していません).

この内容をバッチファイルにして実行するには, 例えば "myconvert.ps1" というファイルに保存して, 以下のように実行すれば OK です (あまり楽にはなっていない気がしますが).

> PowerShell -ExecutionPolicy RemoteSigned .\myconvert.ps1

補足

拡張子の付いているファイル名を別の拡張子のファイル名に変換したい (例えば foo.jpg を foo.png に変換したい) 場合にどうするか? も調べたのですが, ややこしくてあきらめました. どうしてもそれをやりたい場合は (私にとっては) Git for Windows の Bash を使うのが近道のような気がしますが, 今回はそこまでは試してません.

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0