マルチメディアデータの処理/ペイント系画像ツールの利用/画像形式の変換

画像ファイルにはさまざま形式がありますが,画像を扱うアプリケーションの多くは操作できる画像ファイル形式が特定されているので,画像ファイル形式を変換する必要が出てきます.XVやXPaint,GIMPなどの,画像表示,画像描画ツールでも画像ファイル形式を変換できますが,その都度ファイルを開かなければいけません.ここでは,コマンドラインで画像を変換する方法について説明します.

2.9.1 netpbm

netpbmは各種画像ファイル形式の変換を取り扱うコマンド群である.ビットマップ画像ファイルにはさまざまな形式がありますが,色によって大別すると,カラー,グレースケール,白黒ビットマップの3種に分けられます. netpbmではそれら3つについて標準的な形式を下記のように定め, pgmto*pnmto*といったコマンドによって,他の画像ファイル形式との間で相互に形式変換を行います.なお,画像ファイル形式の詳細については1を参照してください.

* PPM (Portable PixMap) カラー画像形式
* PGM (Portable GrayMap) グレースケール形式
* PBM (Portable BitMap) 白黒ビットマップ形式
* PNM (Portable aNyMap) 上記3種を包括する総合ファイル形式

netpbmの実行例

netpbmの最大の特徴は,画像形式の変換がUNIXのコマンドラインで実行できる点です.例えば,GIF形式のカラー画像ファイルをXBM形式にするときは,次のようにコマンドをパイプでつなげて入力します.

% giftopnm in.gif |ppmtopgm |pgmtopbm |pbmtoxbm >out.xbm<RET>

この場合のコマンド実行の流れを図2.17に示します.


図 2.17:netpbmを用いた画像変換の流れ
図 2.17:netpbmを用いた画像変換の流れ

LaTeXに取り込むためにEPSファイルに変換するときも,次のようなコマンドで行えます.

% giftopnm in.gif |ppmtopgm |pnmtops -noturn >out.eps<RET>

pnmtopsコマンドは出力画像の向きを自動的に用紙の長い方に合わせるので,回転を防ぐために-noturnオプションを必要に応じてつけます.

その他,各コマンドの詳細はオンラインマニュアルを参照してください.

netpbmコマンドリスト

参考として,次にCNS で使用できるnetpbmの代表的なコマンドのリストを表2.2から表2.5に示します.


表 2.2: PPMカラーフォーマット
変換媒体 PPMへの変換 PPMから変換
PGM pgmtoppm ppmtopgm
GIF giftoppm ppmtogif
XPM xpmtoppm ppmtoxpm


表 2.3: PGMグレースケールフォーマット
変換媒体 PGMへの変換 PGMから変換
PPM ppmtopgm pgmtoppm
PBM pbmtopgm pgmtopbm
EPSI psidtopgm  


表 2.4: PBMモノクロフォーマット
変換媒体 PBMへの変換 PBMから変換
PGM pgmtopbm pbmtopgm
XBM xbmtopbm pbmtoxbm
ASCII文字によるグラフィックス   pbmtoascii


表 2.5: PNM総合フォーマット
変換媒体 PNMへの変換 PNMから変換
PPM,PGM,PBM anytopnm  
TIFF tifftopnm pnmtotiff
XWD (X Window Dump) xwdtopnm pnmtoxwd
PostScript   pnmtops

2.9.2 JPEGファイル関連コマンド

JPEG形式の画像ファイルをUNIXのコマンドラインから扱うためのコマンド群を次に示します.JPEG形式の詳細については1を参照してください.また,各コマンドの詳細についてはオンラインマニュアルを参照すること.

画像ファイルをJPEG形式に変換する

% cjpeg [オプション] [入力ファイル名] > [出力ファイル名]<RET>
cjpegコマンドは,[入力ファイル名]で指定された画像ファイルをJPEGファイルに変換して標準出力に書き出す.通常は上の書式に示すように,リダイレクションを使用して出力ファイル名を指定します.

入力ファイルとして,PPM, PGM, BMP, GIF, Targaの各画像形式が使用できます.

オプション

-quality N 作成するJPEGファイルの画質をN=0〜100までの整数値で指定します.
このオプションを指定しなかったときは, -quality 75が自動的に指定されます.
-grayscale グレースケールのJPEGファイルを出力します.

JPEGファイルを他の画像ファイル形式に変換する

% djpeg [オプション] [入力ファイル名] > [出力ファイル名]<RET>
djpegコマンドは,[入力ファイル名]で指定されたJPEGファイルを他の画像ファイル形式に変換して標準出力に書き出す.通常は上の書式に示すように,リダイレクションを使用して出力ファイル名を指定する.

出力する画像ファイルの形式は,オプションで指定します.

オプション

-bmp BMP形式のファイルを出力します.
-gif GIF形式のファイルを出力します.
-pnm PPMまたはPGM形式のファイルを出力します.入力ファイルに合わせて適当なファイル形式が自動的に指定されます.
-targa Targa形式のファイルを出力します.
-grayscale グレースケールでファイルを出力します. -pnmと同時に指定することで,カラーJPEGファイルをPGM形式に変換できます.

2.9.3 その他の変換コマンド

CNS では,netpbm以外にも画像変換を行うためのコマンドが提供されます.例えばxwd2psコマンド,gif2xwdコマンドなどです.これらのコマンドはすべてのホストで共通に提供されているものではないので注意してください.

画像変換のコマンドは,変換前と変換後の画像ファイル形式の間にto2をはさんだ形をとることがよくあります.これらのコマンドを利用する場合は,変換元の画像フォーマットファイルに通常用いられている拡張子を入力した後,C-dを入力してコマンドの補完機能を利用するとよいです.次の例は,ccz??,zz???,z???,u???で使用できるXWD (X Window Dump)関連のコマンドを調べたものです.

% xwd<C-d>
xwd     xwdtopnm 
% xwd_

xwdコマンド+xwd2psコマンド

xwd2psコマンドはXWD形式のウィンドウダンプファイルをEPS形式に変換し,標準出力に書き出すコマンドです.EPS形式に変換すると,印刷したりLaTeXに取り込めます.

% xwd -frame -out infile.xwd<RET>
% xwd2ps -P infile.xwd >outfile.eps<RET>
% _
xwd2psコマンドには,さまざまなオプションがありますが,画像の縦横比に合わせて出力が横長(landscape)になるように回転されていることがあるため,常に-Pオプションをつけて縦長(portrait)になるようにします.

また次のようにパイプを利用すると,ウィンドウダンプを直接EPS形式で作成できます.

% xwd -frame |xwd2ps -P >out.eps<RET>

xwdコマンド+xprコマンド

X Window Systemに標準で含まれているxprコマンドを使ってPSファイルにも変換できます.

% xwd -frame -out file.xwd<RET>
% xpr -psfig -portrait -device ps file.xwd  -output file.ps<RET>
% _
-portraitオプションをつけるのはxwd2psコマンドのときと同じで,出力結果の画像が回転するのを防ぐためです.-portraitオプションによって,画像を適切な位置に配置します.