画像ファイルにはさまざま形式があります.画像を扱うアプリケーションの多くは 操作できる画像ファイル形式が特定されているので,画像ファイル形式を変換す る必要が出てきます.XVやXPaint,GIMPなどの,画像表示,画像描画ツールでも画 像ファイル形式を変換できますが,その都度ファイルを開かなければいけません.こ こでは,コマンドラインで画像を変換する方法について説明します.
netpbmは各種画像ファイル形式の変換を取り扱うコマンド群です ビットマップ画像ファイルにはさまざまな形式がありますが,色によって大別 すると,カラー,グレースケール,白黒ビットマップの3種に分けられます. netpbmではそれら3つについて標準的な形式を下記のように定め, pgmto*やpnmto*といったコマンドによっ て,他の画像ファイル形式との間で相互に形式変換を行います.なお,画像ファイ ル形式の詳細についてはを参照してください.
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> % _
LaTeXに取り込むためにEPSファイルに変換するときも,次のようなコマンド で行えます.
% giftopnm | ppmtopgm | pnmtops -noturn > out.eps <RET>
pnmtopsコマンドは出力画像の向きを自動的に用紙の長い方に合 わせるので,回転を防ぐために-noturnオプションを必要に応じ てつけます.
その他,各コマンドの詳細はオンラインマニュアルを参照してください.
参考として,次にCNS で使用できるnetpbmの代表的なコマンドの リストを表から表に示します.
変換媒体 | PPMへの変換 | PPMから変換 |
PGM | pgmtoppm | ppmtopgm |
GIF | giftoppm | ppmtogif |
XPM | xpmtoppm | ppmtoxpm |
変換媒体 | PBMへの変換 | PBMから変換 |
PGM | pgmtopbm | pbmtopgm |
XBM | xbmtopbm | pbmtoxbm |
ASCII文字によるグラフィックス | pbmtoascii |
変換媒体 | PNMへの変換 | PNMから変換 |
PPM,PGM,PBM | anytopnm | |
TIFF | tifftopnm | pnmtotiff |
XWD (X Window Dump) | xwdtopnm | pnmtoxwd |
PostScript | pnmtops |
JPEG形式の画像ファイルをUNIXのコマンドラインから扱うためのコマンド群を 次に示します.JPEG形式の詳細についてはを参照 してください.また,各コマンドの詳細についてはオンラインマニュアルを参照す ること.
% cjpeg [オプション] [入力ファイル名] > [出力ファイル名] <RET>
cjpegコマンドは,[入力ファイル名]で指定された 画像ファイルをJPEGファイルに変換して標準出力に書き出す.通常は上の書式 に示すように,リダイレクションを使用して出力ファイル名を指定します.
入力ファイルとして,PPM, PGM, BMP, GIF, Targaの各画像形式が使用できます.
-quality N | 作成するJPEGファイルの画質をN=0〜100ま での整数値で指定します.このオプションを指定しなかったときは,-quality 75が自動的に指定されます. |
-grayscale | グレースケールのJPEGファイルを出力します. |
% djpeg [オプション] [入力ファイル名] > [出力ファイル名] <RET>
djpegコマンドは,[入力ファイル名]で指定された JPEGファイルを他の画像ファイル形式に変換して標準出力に書き出す.通常は 上の書式に示すように,リダイレクションを使用して出力ファイル名を指定す る.
出力する画像ファイルの形式は,オプションで指定します.
-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)関連のコマンドを調べたものです.
% xwdxwd xwdtopnm % xwd_
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>
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オプションによって,画像を適切な位置に配置します.