[Up] [Next]
[Previous]
画像の変換と加工
画像の変換や加工を行うツールとして、以下のパッケージツールが有名です。
XV はシェアウェアですが、他はフリーソフトウェアです。いずれも X
Contribの
CD-ROMやFTPミラーサイト等から入手できます。
ここでは、以下の簡単な画像処理の方法を説明します。
- イメージの切り取り
- サイズ変更、回転、反転
- スムースとシャープ
- 色調整
- GIFイメージの透明化
- GIFイメージのインタレース化
- コンタクトシートの作成
イメージの切り取り
イメージをあるサイズに収めたかったり、ある部分を残して切り取りたい場合
がよくあります。Unix によける XV や display はマウスでドラッ
グした範囲を切り取ることが可能です。XV の場合、イメージを表示させ、マ
ウスで切り取る範囲を四角にドラッグし、コントロールウィンドウの Crop ボ
タンをクリックします。すると、その部分を残して画像が小さくなります。ま
た、ハサミアイコンをクリックするとその部分が切り取られ、無くなります。
サイズ変更、回転、フリップ
イメージのサイズ変更、回転、フリップも XV や displayは活躍し
ますが、ここでは Netpbm パッケージのコマンドを使った方法を解説します。
Netpbmパッケージのpnmscaleはポータブルビットマップイメージの
拡大・縮小をコマンドベースで行なうことができます。
% pnmscale 1.5 < input_file > output_file
とすると画像が1.5倍拡大されます。また、
% pnmscale 0.5 < input_file > output_file
とすると画像が半分に縮小されます。
また、pnmscaleはピクセルサイズによっても指定できます。
例えば、GIFイメージを100×100ピクセルにする場合、
giftoppm foo.gif | pnmscale -xysize 100 100 \
| ppmquant 256 | ppmtogif > foo_out.gif
のようにします。ここで、ppmquantを使用しているのは、イメージ
を縮小した場合、pnmscaleが余分な色を作ってしまうため、それ
を抑える目的で必要です。
イメージの回転、反転、ミラーは Netpbm パッケージの pnmflip が
使用できます。
- 90度時計方向に回転させる場合、
% pnmflip -rotate90 < input_file > output_file
- 90度逆時計方向に回転させる場合、
% pnmflip -rotate270 < input_file > output_file
- 上下に反転させる場合、
% pnmflip -topbottom < input_file > output_file
- 鏡像を作る場合、
% pnmflip -leftright < input_file > output_file
90度よりも小さな角度で回転させる場合、pnmrotate を使用します。
-90度 〜 90度まで指定でき、正であれば時計方向、負であれば逆時計方向に
回転します。30度時計方向に回転させる場合、次のようになります。
% pnmrotate 30 < input_file > output_file
スムースとシャープ
スムース効果はイメージの境界をぼかす効果があります。ちょうど曇ガラスで
見たようなイメージになります。逆にシャープは境界をはっきりさせる効果が
あります。スムースとシャープ効果を行う機能は多くのコマーシャルソフトウェ
アが持っています。Unix の場合、ImageMagick パッケージの
display、convert、mogrifyや XV ツールにも、
その機能があります。Netpbm パッケージでは、スムースを行う
pnmsmoothとシャープを行うpbmconvolツールがあります。
また、大きさを変えながら、スムースにする pbmpscaleもあります。
例えば、2倍に拡大してスムシングを複数回行った場合、次のようになる。
bmptoppm heart.bmp | pnmenlarge 2 | pnmsmooth | pnmsmooth
| pnmsmooth | ppmtogif
→
2倍に拡大し、スムーシングを行った例
色調整
GIFのようなイメージは、イメージ変換をしたときに色が崩れる場合がありま
す。その色の調整に ppmquant、ppmquantallで色の数を制
限ができます。例えば、128色に抑えるには、
giftoppm foo.gif | ppmquant 128 | ppmtogif > foo128.gif
GIF89a では透明化をサポートするようになっています。透明GIFイメージをサ
ポートするWWWのブラウザでは透明化した部分が背景色と同一となるため、イ
メージだけを張り付けたような効果があります。そのため、GIFを透明化する
ことはWWWの世界では常識となっています。
ここでは、Unix上で透明化GIFを作成するための二つの方法を紹介します。ま
ず、最初はNetpbmパッケージのppmtogifプログラムを使用する方法
です。ppmtogifには -transparentオプションをもってお
り、このオプションを使用することによって、透明化GIFに変換できます。
giftopnm leaf.gif | ppmtogif -transparent #rrggbb > T-leaf.gif
#rrggbbは透明化する色を指定するもので、RGB 色で指定します(例
えば白の場合#FFFFFF、黒の場合#000000)。なお、イメージからRGB色を知るに
は、XV が非常に便利です。知りたい部分をマウスの真中ボタンで抑える上下
どちらかに10進数と16進数で表示されます。
また、Andreas Ley氏によっ
て、Giftransと呼ばれるツールが開発されています。これは、Netpbm
のようにGIFを中間形式に変換する必要はないので、非常に便利です。透明化
したい色を -tオプションで指定します。
giftrans -t #rrggbb leaf.gif > T-leaf.gif
なお、このツールは giftrans.cとしてソースコードが公開されてお
り、DOS や OS/2 などでも利用できます。
マッキントッシュの場合、Aaron
Giles氏によって開発されたTransparencyと呼ばれるツールが
あります。このツールは対話的に行うことが可能で非常に便利です。また、
ウィンドウズでは Paint Shop Pro や LView Proと呼ばれるプログラム(シェ
アウェア)が透明GIFへの変換をサポートしており、大変便利です。
インタレースGIFイメージは GIF87a と GIF89a でサポートされています。イ
ンターレースGIFの作成を Unix で行う場合、ここでも Netpbm パッケージが
活躍します。透明化の時にも利用した pnmtogif プログラムの
-interlace オプションを使用します。なお、-interlace
オプションは -transparentオプションと一緒に用いることもできま
す。
giftopnm leaf.gif | ppmtogif -interlace -transparent #rrggbb > IT-leaf.gif
マッキントッシュでは GIFConverter と呼ばれるプログラム(シェアウェア)が、
ウィンドウズでは Paint Shop Pro や LView Pro と呼ばれるプログラム(シェ
アウェア)が便利です。
例えば、LView Pro を使って透明化インタレースGIFを作る場合、以下のよう
に行ないます。
- LView Pro 1.B を実行し、GIFファイルを開きます。
- インタレースGIFにしたければ、Options メニューの Save
GIFsで GIF89a を選択します。
- OptionsメニューのBackground color...をクリックす
ると、パレットウィンドウが表示されます。そこで、Mask
selecting usingボックスを選択し、Blackボ
タンを on にします。
- 透明化したい色をパレットから選択します。黒のエリアが透明化され
ないエリアで表示されます。これとは別の方法として、
Dropperボタンをクリックする方法もあります。
- ファイルを保存します。但し、その時GIF89a フォーマットで保存しな
ければなりません。
FAQ
GIFの透明化およびインタレース化の有名なWebページ/FAQ は下記にあります。
-
http://dragon.jpl.nasa.gov/~adam/transparent.html
-
ftp://csi.jpl.nasa.gov/pub/graphics/transparent.faq
スライドシートの作成
たくさんの画像を一つのシートに表示させるスライドシートを作成する場合、
ImageMagick パッケージの montagaツールが便利です。
index.jpgを作成する場合、
(montage イメージファイル ... 出力ファイル)
例:
% montage *.gif *jpg index.gif
とします(最後に出力ファイルを書き、出力ファイル形式はImageMagickの接尾
辞によって決まっています)。
すると、以下のような画面が自動的に作成されます。これを後で説明するクリッ
カブルマップと組み合わせて使用すれば、スライドシートが簡単に出来上がり
ます。
作成されたスライドイメージ
Xウィンドウの画面ダンプ
Xウィンドウの画面ダンプは、xwd というコマンドが一般に使用されますが、
画面全体あるいはウィンドウごとしか画面ダンプが取れません。しかし、
Bruce Schuchardt氏が開発した xgrab
と呼ばれるソフトウェアは画面の一部をダンプしたり、ダンプまでの時間を指
定する(カメラのような)機能があります。また、XWD 形式以外の XPM や ポス
トスクリプトに出力することもできます。
Xgrab の初期画面
[Up] [Next]
[Previous]