「大量の画像ファイルをJPGからPNGに一括変換したい」
Linuxには
convert コマンド(ImageMagick)があり、コマンドラインだけで画像形式の変換ができます。シェルスクリプトと組み合わせれば、何百枚もの画像を一括処理することも可能です。
この記事では、convertコマンドによる画像形式変換の基本から一括変換の実践例まで解説します。
インストール方法、基本的な変換コマンド、リサイズとの組み合わせ、よくあるエラーの対処法も網羅しました。
・ImageMagickのインストール方法(yum/dnf/apt対応)
・convertコマンドで画像形式を変換する基本構文
・JPG・PNG・BMP・TIFF・WebPなど主要形式の変換方法
・シェルスクリプトによる一括変換の実装例
・リサイズや品質指定との組み合わせ方
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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
# 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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Linuxのファイルシステムの種類と特徴|ext4・xfs・btrfsの違いとマウント方法
- 前のページへ:ハイフンやスペースを含むファイルをrmで削除する方法|--オプションや""クォートの使い方
- この記事の属するカテゴリ:Linuxtips・ディレクトリ・ファイル操作へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます