next up previous contents index
Next: 3. ドロー系画像ツールの利用 Up: 2. ペイント系画像ツールの利用 Previous: 2.8 画像の加工


2.9 画像形式の変換

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

    
2.9.1 netpbm

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


* 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>
 

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


  
図: netpbmを用いた画像変換の流れ
\begin{figure}
{center}
8,10){{GIF形式}}
(28,0){{tex2html_nowrap}
{1.0}(18,10)...
... (99,12){{{tex2html_deferred}<TT>pbmtoxbm</TT>}}
{tex2html_deferred}\end{figure}

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

% giftopnm in.gif | ppmtopgm | pnmtops -noturn > out.eps<RET>
pnmtopsコマンドは出力画像の向きを自動的に用紙の長い方に合わせる ので,回転を防ぐために-noturnオプションを必要に応じてつける.

その他,各コマンドの詳細はオンラインマニュアルで参照すること.  

netpbmコマンドリスト

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


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


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



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


 
表: 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形式の詳細についてはを参照 すること.また,各コマンドの詳細についてはオンラインマニュアルを参照し てほしい.

画像ファイルを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を 入力してコマンドの補完機能を利用するとよい. 次の例は,ccn16で使用できるXWD (X Window Dump)関連のコマンドを調べたも のである.

% xwd<C-d>
xwd      xwd2fcvg xwd2jpeg xwd2scn  xwdconv  xwdlpr   
xwd2any  xwd2gif  xwd2ps   xwd2tif  xwdrot90 xwdtoc
xwdif    xwdprev  xwdset   xwdtopnm
% xwd_

xwdコマンド+xwd2psコマンド

 

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

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

また次のようにパイプを利用すると,ウィンドウダンプを直接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オプ ションによって,画像を適切な位置に配置する.