画像ファイルにはさまざま形式があるが,画像を扱うアプリケーションの多くは操作できる画像ファイル形式が特定されているので,画像ファイル形式を変換する必要が出てくる.XVやXPaint,GIMPなどの,画像表示,画像描画ツールでも画像ファイル形式を変換できるが,その都度ファイルを開かなくてはいけない.ここでは,コマンドラインで画像を変換する方法について説明する.
netpbmは各種画像ファイル形式の変換を取り扱うコマンド群である.ビットマップ画像ファイルにはさまざまな形式があるが,色によって大別すると,カラー,グレースケール,白黒ビットマップの3種に分けられる. netpbmではそれら3つについて標準的な形式を下記のように定め, pgmto*やpnmto*といったコマンドによって,他の画像ファイル形式との間で相互に形式変換を行う.なお,画像ファイル形式の詳細については第1部 1を参照すること.
* PPM (Portable PixMap) | … | カラー画像形式 |
* PGM (Portable GrayMap) | … | グレースケール形式 |
* PBM (Portable BitMap) | … | 白黒ビットマップ形式 |
* PNM (Portable aNyMap) | … | 上記3種を包括する総合ファイル形式 |
netpbmの最大の特徴は,画像形式の変換がUNIXのコマンドラインで実行できる点である.例えば,GIF形式のカラー画像ファイルをXBM形式にするときは,次のようにコマンドをパイプでつなげて入力する.
% giftopnm in.gif |ppmtopgm |pgmtopbm |pbmtoxbm >out.xbm<RET>
この場合のコマンド実行の流れを図2.17に示す.
LATEXに取り込むためにEPSファイルに変換するときも,次のようなコマンドで行える.
% giftopnm in.gif |ppmtopgm |pnmtops -noturn >out.eps<RET>
pnmtopsコマンドは出力画像の向きを自動的に用紙の長い方に合わせるので,回転を防ぐために-noturnオプションを必要に応じてつける.
その他,各コマンドの詳細はオンラインマニュアルを参照すること.
参考として,次にCNSで使用できるnetpbmの代表的なコマンドのリストを表2.2から表2.5に示す.
|
|
|
|
JPEG形式の画像ファイルをUNIXのコマンドラインから扱うためのコマンド群を次に示す.JPEG形式の詳細については第1部 1を参照すること.また,各コマンドの詳細についてはオンラインマニュアルを参照すること.
% cjpeg [オプション] [入力ファイル名] > [出力ファイル名]<RET>
入力ファイルとして,PPM, PGM, BMP, GIF, Targaの各画像形式が使用できる.
-quality N | 作成するJPEGファイルの画質をN=0〜100までの整数値で指定する.このオプションを指定しなかったときは, -quality 75が自動的に指定される. |
-grayscale | グレースケールのJPEGファイルを出力する. |
% djpeg [オプション] [入力ファイル名] > [出力ファイル名]<RET>
出力する画像ファイルの形式は,オプションで指定する.
-bmp | BMP形式のファイルを出力する. |
-gif | GIF形式のファイルを出力する. |
-pnm | PPMまたはPGM形式のファイルを出力する.入力ファイルに合わせて適当なファイル形式が自動的に指定される. |
-targa | Targa形式のファイルを出力する. |
-grayscale | グレースケールでファイルを出力する. -pnmと同時に指定することで,カラーJPEGファイルをPGM形式に変換できる. |
CNSでは,netpbm以外にも画像変換を行うためのコマンドが提供されている.例えばxwd2psコマンド,gif2xwdコマンドなどである.これらのコマンドはすべてのホストで共通に提供されているものではないので注意すること.
画像変換のコマンドは,変換前と変換後の画像ファイル形式の間にtoや2をはさんだ形をとることが多い.これらのコマンドを利用する場合は,変換元の画像フォーマットファイルに通常用いられている拡張子を入力した後,C-dを入力してコマンドの補完機能を利用するとよい.次の例は,ccz??,zz???,z???,u???で使用できるXWD (X Window Dump)関連のコマンドを調べたものである.
% xwd<C-d>
xwd xwdtopnm
% xwd_
% xwd -frame -out infile.xwd<RET> % xwd2ps -P infile.xwd >outfile.eps<RET> % _
また次のようにパイプを利用すると,ウィンドウダンプを直接EPS形式で作成できる.
% xwd -frame |xwd2ps -P >out.eps<RET>
% xwd -frame -out file.xwd<RET> % xpr -psfig -portrait -device ps file.xwd -output file.ps<RET> % _