Linuxで画像ファイル形式を変換する方法|convertコマンドの基本と一括変換スクリプト

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > Linuxで画像ファイル形式を変換する方法|convertコマンドの基本と一括変換スクリプト
「Linuxで画像の形式変換をしたいが、GUIツールなしでコマンドだけでできるのか?」
「大量の画像ファイルをJPGからPNGに一括変換したい」
Linuxには convert コマンド(ImageMagick)があり、コマンドラインだけで画像形式の変換ができます。
シェルスクリプトと組み合わせれば、何百枚もの画像を一括処理することも可能です。

この記事では、convertコマンドによる画像形式変換の基本から一括変換の実践例まで解説します。
インストール方法、基本的な変換コマンド、リサイズとの組み合わせ、よくあるエラーの対処法も網羅しました。

【この記事でわかること】
・ImageMagickのインストール方法(yum/dnf/apt対応)
・convertコマンドで画像形式を変換する基本構文
・JPG・PNG・BMP・TIFF・WebPなど主要形式の変換方法
・シェルスクリプトによる一括変換の実装例
・リサイズや品質指定との組み合わせ方

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

ImageMagickとconvertコマンドとは

convert コマンドは、「ImageMagick」というオープンソースのパッケージに含まれています。
200種類以上の画像フォーマットを扱えるほか、リサイズ・回転・色変換・テキスト合成など多彩な画像処理をコマンドラインから実行できます。

ImageMagickのインストール

convert コマンドを使うには、まずImageMagickをインストールします。

1. RHEL/CentOS/Rocky Linuxの場合

# dnf install -y ImageMagick # または # yum install -y ImageMagick

2. Ubuntu/Debianの場合

# apt install -y imagemagick

3. インストール確認

# convert --version Version: ImageMagick 7.x.x

基本的な使い方(画像形式を変換する)

convert コマンドの基本構文は次の通りです。

# convert 変換元ファイル 変換後ファイル

形式はファイルの拡張子から自動判定されます。明示的に指定する必要はありません。

1. JPGをPNGに変換する

# convert server.jpg server.png # ls server.jpg server.png

2. PNGをWebPに変換する

# convert server.png server.webp

3. 複数の形式に連続変換する

# convert server.jpg server.bmp # convert server.bmp server.png # convert server.png server.tiff # ls server.bmp server.jpg server.png server.tiff

応用・実務Tips

1. リサイズと形式変換を同時に行う

-resize オプションで変換と同時にサイズ変更ができます。

# 幅640pxにリサイズしながらJPGに変換 # convert original.png -resize 640x server.jpg # 幅と高さを固定(アスペクト比無視) # convert original.png -resize 640x480! output.jpg

2. JPEG品質を指定する

-quality オプションで圧縮品質(0~100)を指定できます。Web配信用に軽量化する場合に便利です。

# 品質85%でJPGに変換(デフォルトは92) # convert original.png -quality 85 output.jpg

3. シェルスクリプトで一括変換する

ディレクトリ内のJPGをすべてPNGに変換する例です。

#!/bin/bash for f in *.jpg; do convert "$f" "${f%.jpg}.png" echo "変換完了: $f -> ${f%.jpg}.png" done

${f%.jpg} は変数 f から末尾の .jpg を除いた文字列を返します。これを使って拡張子を .png に付け替えています。

トラブルシュート・エラー対処

1. 「convert: command not found」が出る場合

ImageMagick がインストールされていません。前述のインストール手順を実行してください。

2. 「convert: no decode delegate for this image format」が出る場合

変換しようとしている形式のデコーダが ImageMagick に含まれていません。

# 対応フォーマット一覧を確認する # convert -list format | grep -i webp

WebP対応がない場合は、追加パッケージのインストールが必要です。

# RHEL/CentOS系 # dnf install -y libwebp-devel # Ubuntu系 # apt install -y libwebp-dev

3. 変換後の画像サイズが大きくなる場合

PNG は可逆圧縮のため、JPG から変換すると一般的にファイルサイズが大きくなります。
Web配信目的ならWebPへの変換か、-quality オプションによる圧縮率の調整を検討してください。

本記事のまとめ

やりたいこと コマンド
JPGをPNGに変換 convert 元.jpg 変換後.png
PNGをWebPに変換 convert 元.png 変換後.webp
リサイズしながら変換 convert 元.png -resize 640x 変換後.jpg
JPEG品質を指定して変換 convert 元.png -quality 85 変換後.jpg
ディレクトリ内を一括変換 シェルスクリプトで for f in *.jpg; do convert ...; done
対応フォーマット確認 convert -list format

Linuxをコマンドラインで使いこなして、作業を自動化したい方へ

画像変換のような繰り返し作業は、シェルスクリプトで自動化できます。そのためには、Linuxコマンドの基礎をしっかり身につけておくことが大切です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。