atobm(1) ビットマップのエディタとコンバータ

Other Alias

bitmap, bmtoa

書式

bitmap [ -options ... ] [ filename ] [ basename ]

bmtoa [ -chars ... ] [ filename ]

atobm [ -chars cc ] [ -name variable ] [ -xhot number ] [ -yhot number ] [ filename ]

説明

bitmap プログラムは、1と0からなる長方形のイメージの作成や編集の ための原始的なツールである。X 環境において、bitmap はクリッピング領域 やカーソル形状、アイコン形状、タイルパターンやスティプルパターンの定義 に用いられる。

bmtoaatobm フィルタはビットマップファイル(「ファ イルフォーマット」セクションを参照)と ASCII 文字列の相互変換を行う。こ れらが最もよく使われるのは、ビットマップを印刷するときと、テキストに取 り込むときである。

オプション

bitmap には、X ツールキットの標準コマンド行引き数(X(1) を参照)に加えて、以下の引き数をサポートしている。
-size WIDTHxHEIGHT
四角形内部のグリッドのサイズを指定する。
-sw dimension
四角形の幅をピクセル数で指定する。
-sh dimension
四角形の高さをピクセル数で指定する。
-gt dimension
グリッドの許容誤差を指定する。四角形のディメンジョンが指定された値より 小さい場合には、グリッド表示は自動的に無効にされる。
-grid, +grid
グリッドの線を有効または無効にする。
-axes, +axes
主軸を有効または無効にする。
-dashed, +dashed
枠とグリッドの線の点線表示を有効または無効にする。
-stippled, +stippled
ハイライト領域のスティプル表示を有効または無効にする。
-proportional, +proportional
プロポーショナルモードを有効または無効にする。プロポーショナルモードが 有効ならば、四角形の幅は高さと等しくなる。プロポーショナルモードが無効 ならば、四角形の幅は高さが初期状態で異なっていると bitmap は四 角形の小さい方のディメンジョンを用いる。
-dashes filename
点線のためのスティプルとして使うビットマップを指定する。
-stipple filename
ハイライトのためのスティプルとして使うビットマップを指定する。
-hl color
ハイライトに使う色を指定する。
-fr color
枠とグリッドの線に使う色を指定する。
filename
最初にプログラムがロードするビットマップを指定する。 指定されたファイルが存在しない場合、bitmap はこれを新しいファイ ルと解釈する。
basename
C 言語のコードとして出力するファイルで使うベース名を指定する。 これが作業ファイルのベース名と異なる場合、bitmap はファイルをセー ブするときに作業ファイルのベース名を変更する。

bmtoa には以下のオプションを指定できる:

-chars cc
このオプションは、文字列形式のビットマップで使う文字のペアを指定する。 最初の文字はビット0を示し、次の文字がビット1を示す。デフォルトでは0に 対してはダッシュ(-)が使われ、1に対してはシャープ記号(#)が使われる。

atobm には以下のオプションを指定できる:

-chars cc
このオプションは、文字列形式のビットマップを数値の配列に変換するときに 使う文字のペアを指定する。最初の文字はビット0を示し、次の文字がビット1 を示す。デフォルトでは0に対してはダッシュ(-)が使われ、1に対してはシャー プ記号(#)が使われる。
-name variable
このオプションは、ビットマップファイルを書き出すときに使う変数名を指定 する。デフォルトではコマンド行引き数 filename のベース名が使 われるが、読み込みを標準入力から行った場合には空文字列のままである。
-xhot number
このオプションはホットスポットの X 座標を指定する。正の値しか指定する ことができない。デフォルトでは、ホットスポット情報は含まれない。
-yhot number
このオプションはホットスポットの Y 座標を指定する。正の値しか指定する ことができない。デフォルトでは、ホットスポット情報は含まれない。

使用方法

bitmap はグリッドを表示する。グリッドの1マスは、編集中の絵のビッ ト1つを表す。ビットマップイメージの実際のサイズは Meta-I を押す と得られる。この際には通常のイメージと反転イメージが表示される。このイ メージポップアップは編集の邪魔にならないように自由に動かすことができる。 左マウスボタンを押すか、もう一度 Meta-I キーを押すと、実サイズの ビットマップイメージ表示を消すことができる。

bitmap を使ってカーソル定義を行う場合、イメージ中の格子の1つをホットス ポットとして指定することができる。ホットスポットはカーソルが実際に指す 点を決める。尖った部分を持つカーソル(矢印や指マークなど)においては、普 通は先端部分をホットスポットにする。対称な形を持つカーソル(十字や的な ど)においては、普通は中心をホットスポットにする。

ビットマップはアプリケーションに取り込めるように、C 言語の短いソースコー ドの形で保存される。 このデータは、ビット列と幅や高さ、(指定されていれば)ホットスポットを与 えるシンボリックな定数を持ち、カーソル、アイコン、タイルの生成に使うこ とができる。

編集

ビットマップイメージを編集するには、マウスのボタン(任意)を描画コマンド (Point, Curve, Line, Rectangle, 等)をクリックしてからポインタを ビットマップグリッドウィンドウに移動させる。ここでマウスのボタンを押す と、適切なアクションが行われる。これにより、グリッドの四角形のセット、 クリアや反転を行うことができる。グリッドの四角形をセットすることは、ビッ トマップイメージのビットに1をセットすることである。グリッドの四角形を クリアすることは、ビットマップイメージのビットに0をセットすることであ る。グリッドの四角形を反転させることは、ビットマップのイメージを前の値 に基づいて1から0、または0から1に変えることである。マウスのボタンのデフォ ルトの動作は以下のように指定されている:

                MouseButton1            Set
                MouseButton2            Invert
                MouseButton3            Clear
                MouseButton4            Clear
                MouseButton5            Clear

このデフォルトの動作は、ボタン機能リソースの設定によって変更することが できる。例を以下に示す:

                bitmap*button1Function: Set
                bitmap*button2Function: Clear
                bitmap*button3Function: Invert
                等

ボタン機能は、コピー、移動、貼り付け、塗りつぶし、ホットスポットの設定 などの全ての描画コマンドに適用される。

描画コマンド

アプリケーションの左側のボタンを使って呼び出すことができる描画コマンド のリストを示す。コマンドによってはビットマップウィンドウ内で A キーを 押すことによって中断することができ、これによってユーザは指定可能な別の ガイド点を選択することができる。
Clear
このコマンドはビットマップイメージの全てのビットをクリアする。グリッド の四角形は全て背景色にセットされる。ビットマップウィンドウ内で C キー を押すことで同じ効果が得られる。
Set
このコマンドはビットマップイメージの全てのビットをセットする。グリッド の四角形は全て前景色にセットされる。ビットマップウィンドウ内で S キー を押すことで同じ効果が得られる。
Invert
このコマンドはビットマップイメージの全てのビットを反転させる。グリッド の四角形の内容は適切に反転される。ビットマップウィンドウ内で I キーを 押すことで同じ効果が得られる。
Mark
このコマンドを使うと、ハイライト色の長方形のドラッグにより、グリッドの 領域をマークすることができる。一度領域をマークすると、この領域は各種コ マンドによって操作できる( Up, Down, Left, Right, Rotate, Flip, Cut 等を参照)。マークされた 領域は複数個同時に存在することはできない。他の領域をマークしようとする と、前のマークは消える。グリッドウィンドウでShift-MouseButton1 を押して長方形領域をドラッグすることにより同じ効果が得られる。 Shift-MouseButton2 を押すと、グリッド領域全体がマークされる。
Unmark
このコマンドは領域のマークを取り消す。Shift-MouseButton3 を押す ことにより、同じ効果が得られる。
Copy
このコマンドは、グリッド領域内でコピーを行う場合に使う。マークされたグ リッド領域が表示されていなければ、Copy は単に前述の Mark と同じ動作をする。マークされたグリッド領域がハイライト色で表示されてい れば、このコマンドはユーザの操作に基づいて以下の2つの動作のどちらかを 行うマークされた領域内でボタンをクリックした場合には、マークされた領域 を表す長方形を任意の場所へドラッグして動かすことができる。マウスのボタ ンを離すと、その領域がコピーされる。マークされた領域の外でボタンを押し た場合には、Copy はユーザがビットマップの別の領域をマークしよう としていると解釈し、再び Mark の動作を行う。
Move
このコマンドはグリッド領域を移動させるために使う。この動作は Copy コマンドとよく似ているが、マークされた領域はコピーされずに 移動する点が異なる。
Flip Horizontally
このコマンドは、ビットマップイメージを水平軸に関して対称移動する。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で H キーを押す と、同じ効果が得られる。
Up
このコマンドはビットマップイメージを1ピクセル上に移動させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で UpArrow キー を押すと、同じ効果が得られる。
Flip Vertically
このコマンドは、ビットマップイメージを垂直軸に関して対称移動する。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で V キーを押す と、同じ効果が得られる。
Left
このコマンドはビットマップイメージを1ピクセル左に移動させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で LeftArrow キー を押すと、同じ効果が得られる。
Fold
このコマンドはビットマップイメージの反対の隅が隣接するような折り返しを 指定する。これはタイリングに使うビットマップを作るときに便利である。 ビットマップウィンドウ内で F キーを押すことによって、同じ効果が得られ る。
Right
このコマンドはビットマップイメージを1ピクセル右に移動させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で RightArrow キー を押すと、同じ効果が得られる。
Rotate Left
このコマンドはビットマップイメージを90度左(反時計周り)に回転させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で L キーを押す と、同じ効果が得られる。
Down
このコマンドはビットマップイメージを1ピクセル下に移動させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で DownArrow キー を押すと、同じ効果が得られる。
Rotate Right
このコマンドはビットマップイメージを90度右(時計周り)に回転させる。 グリッドのマークされた領域がハイライトしている場合、この操作はマークさ れた領域の内部でのみ行われる。ビットマップウィンドウ内で R キーを押す と、同じ効果が得られる。
Point
このコマンドは、マウスのボタンが押されるとポインタが指しているグリッド の四角形の状態が変わるようにする。マウスのボタンを連続してドラッグして も、線は連続にならないかもしれない。これはシステムの速さとマウス移動 イベントの頻度によって決まる。
Curve
このコマンドは、マウスのボタンが押されるとポインタが指しているグリッド のマスの状態が変わるようにする。マウスのボタンを連続してドラッグすると、 必ず連続な線が描かれる。ただし、システムが遅い場合や、bitmap が 拾えるマウス移動イベントが少なすぎる場合には、おかしな線になってしまう かもしれない。
Line
このコマンドはグリッドの2つの格子の間に線を引く。 グリッドウィンドウ内で一度マウスボタンを押すと、bitmap はこの点 とマウスのポインタの位置を結ぶ線をハイライト表示する。マウスのボタンを 離すと実際の線が描かれて、ハイライト表示の線は消える。
Rectangle
このコマンドは2つの格子を使って長方形を描く。 グリッドウィンドウ内で一度マウスボタンを押すと、bitmap はこの点 とマウスのポインタの位置を結ぶ線が対角線となるような長方形をハイライト 表示する。マウスのボタンを離すと実際の長方形が描かれて、ハイライト表示 の長方形は消える。
Filled Rectangle
このコマンドは Rectangle とほぼ同じであるが、外枠だけでなく長方形 全体が塗りつぶされる点が異なる。
Circle
このコマンドは2つの格子を使って円を描く。 グリッドウィンドウ内で一度マウスボタンを押すと、bitmap はこの点 とマウスのポインタの位置を結ぶ線が半径となるような円をハイライト表示す る。マウスのボタンを離すと実際の円が描かれて、ハイライト表示の円は消え る。
Filled Circle
このコマンドは Circle とほぼ同じであるが、外枠だけでなく円全体が 塗りつぶされる点が異なる。
Flood Fill
任意の格子をクリックした際に、これに接続している領域を全て塗りつぶす。 斜めに隣接している格子は連続しているとはみなされない。
Set Hot Spot
このコマンドは、ビットマップイメージをカーソルの定義に使う際に、グリッ ドの1つの格子をホットスポットとして指定する。ホットスポットにしたい格 子をマウスでクリックすると、菱形のマークが表示される。
Clear Hot Spot
このコマンドは、ビットマップイメージからホットスポットの指示を取り除く。
Undo
このコマンドは直前に実行したコマンドを取り消す。アンドゥの回数は1なの で、Undo の後に Undo を行うとアンドゥそのものが取り消され る。

File メニュー

File メニューは File ボタンを押して適切なメニュー項目を選ぶか、コント ロールキーと別のキーを組み合わせて押すことによって操作できる。これらの コマンドはファイルとビットマップのグローバルなパラメータ(サイズやベー ス名、ファイル名等)を扱う。
New
このコマンドは、編集エリアをクリアし、編集する新しいファイル名を問い合 わせる。新しいファイルのロードは行わない。
Load
このコマンドは新しいビットマップファイルをビットマップエディタにロード する。 現在のイメージがセーブされていなければ、変更をセーブするか破棄するかの 確認が行われる。このエディタは同時に1つのファイルしか編集できない。編 集において複数イメージ間のやりとりが必要ならば、複数のエディタを立ち上 げて後述のカット・アンド・ペーストの機構を使うこと。
Insert
このコマンドはビットマップファイルを現在編集中のビットマップに挿入する。 ファイル名問い合わせの後、グリッドウィンドウ内部をクリックし、イメージ 外枠の長方形を新しいファイルを挿入したい位置までドラッグすること。
Save
このコマンドはビットマップイメージをセーブする。ファイル名が <none> で なければ、ユーザへの問い合わせは行われない。ファイル名を指定しない場合 とファイル名が - である場合は、出力は標準出力にパイプされる。
Save As
このコマンドは新しいファイル名を問い合わせた後にビットマップイメージを セーブする。このコマンドはファイル名を変更したいときに使われる。
Resize
このコマンドは編集領域のサイズを変更し、新しいピクセル数にする。サイズ は「幅x高さ」の形式で入力しなければならない。現在のイメージサイズより 小さいサイズを指定しなければ、編集しているイメージの情報が失われること はない。このエディタは巨大なファイルを編集するようには設計されていない。
Rescale
このコマンドは編集エリアを拡大または縮小を行い、新しい幅と高さにする。 サイズは「幅x高さ」の形式で入力しなければならない。 アンチエイリアシングは行われないし、小さいサイズに縮小した場合にはイメー ジ情報は失われる。ユーザ独自のよりよい拡大・縮小アルゴリズムを加えられ たい。
Filename
このコマンドはベース名の変更やファイルのセーブを行わずに、ファイル名の 変更を行う。ファイル名に - を指定すると、出力は標準出力にパイプされる。
Basename
指定されたファイル名から決めたベース名と異なるものが欲しい場合に、この コマンドを使ってベース名を変えることができる。
Quit
このコマンドは bitmap アプリケーションを終了させる。ファイルがセーブさ れていなければ、イメージをセーブするかどうかがユーザに問い合わせられる。 アプリケーション終了の際には、プロセスを kill するよりもこのコマンドを 使うほうが望ましい。

EDIT メニュー

Edit メニューコマンドは、Edit ボタンを押して適切なメニュー項目を選択す ることか、またはメタキーと他のキーを組み合わせて押すことによって呼び出 すことができる。これらのコマンドはグリッド、軸、ズーム、カット・アンド・ ペーストなどの編集機能を扱うものである。
Image
このコマンドは、実際のサイズの通常イメージと反転イメージを別のウィンド ウに表示する。このウィンドウを動かして編集を続けることができる。イメー ジウィンドウで左マウスボタンを押すと、スクリーンからイメージ表示を消す ことができる。
Grid
このコマンドは編集領域のグリッドを制御する。グリッドの間隔が gridTolerance リソースで指定された値(デフォルト値は8)より小さい場合は、 グリッドは自動的に使われなくなる。このコマンドを呼び出すことで、明示的 にグリッドを出すことができる。
Dashed
このコマンドはグリッド線の描画に対するスティプルを制御する。点線のリソー スで指定されたスティプルは、このコマンドを呼び出すことで有効または無効 にすることができる。
Axes
このコマンドは、編集中のイメージの主軸のハイライト表示を制御する。主軸 は対称なイメージを作るときの補助になるし、常に主軸がハイライトされてい れば編集の助けになる。
Stippled
このコマンドはビットマップイメージのハイライト領域のスティプルを制御す る。スティプルのリソースで指定されたスティプルは、このコマンドを呼び出 すことによって有効または無効にできる。
Proportional
このコマンドはプロポーショナルモードを制御する。プロポーショナルモード が有効ならば、ビットマップウィンドウの広さに関係なく全てのイメージの幅 と高さは強制的に等しくされる。
Zoom
このコマンドはズームのモードを指定する。既に表示されているマークされた 領域がある場合、bitmap は自動的にこれをズーム表示する。そうでない場合 には、ユーザはズームモードで編集する領域をハイライトさせなければならず、 その後で bitmap が自動的にズームモードに切り替わる。ユーザはズームモー ドでも編集コマンドやその他のユーティリティを使うことができる。ズームア ウトするときには、アンドゥコマンドを実行すると全てのズームセッションが 取り消される。
Cut
このコマンドはイメージのハイライト領域の内容をアプリケーション内部のカッ ト・アンド・ペーストバッファに取り込む。
Copy
このコマンドはイメージのハイライト領域の内容をアプリケーション内部のカッ ト・アンド・ペーストバッファにコピーする。
Paste
このコマンドは、ハイライト領域を持っている他のビットマップアプリケーショ ンがあるかどうか、また内部のカット・アンド・ペーストバッファにデータが ないかどうか調べ、これらのデータをイメージにコピーする。コピーされたイ メージを配置するには、編集ウィンドウをクリックし、イメージの外枠を配置 したい位置にドラッグし、それからボタンを離す。

カット・アンド・ペースト

bitmap はカット・アンド・ペーストの機構をサポートしている。これには内 部のカット・アンド・ペーストと X のセレクションを用いたグローバルなカッ ト・アンド・ペーストがある。内部のカット・アンド・ペーストは、描画コマ ンドのコピーや移動を実行したときや、Edit メニューからカット・アンド・ ペーストのコマンドを実行したときに用いられる。X のセレクションを用いた グローバルなカット・アンド・ペーストは、スクリーンのどこかにビットマッ プイメージのハイライト領域が表示されているときには必ず使われている。イ メージの一部を他のビットマップエディタからコピーするには、Mark コマン ドを用いるか、シフトキーを押しながら左マウスボタンでドラッグすることに より、コピーしたい領域をハイライトさせるだけでよい。選択された領域がハ イライトしたとき、PRIMARY セレクションを使っている他のアプリケーション (xterm 等)はこのセレクション値を破棄し、それに伴う情報はハイライト解除 される。ここで、Edit メニューから Paste コマンドを選ぶか、またはコント ロールキーを押しながらマウスのボタンを押して、イメージの選択された部分 を他の(あるいは同じ)bitmap アプリケーションにコピーする。ハイライトさ れた可視のイメージ領域がないときにこれを試みた場合には、bitmap は内部 のカット・アンド・ペーストバッファを最後の手段として使い、その時点で格 納している任意のデータを貼り付ける。

ウィジェット

以下に bitmap アプリケーションのウィジェット構造を示す。インデン トは階層構造を示す。ウィジェットクラスを最初に挙げ、これにウィジェット のインスタンス名を続ける。bitmap ウィジェットを除く全てのウィジェット は Athena ウィジェットセットの標準のウィジェットである。

        Bitmap bitmap
                TransientShell image
                        Box box
                                Label normalImage
                                Label invertedImage
                TransientShell input
                        Dialog dialog
                                Command okay
                                Command cancel
                TransientShell error
                        Dialog dialog
                                Command abort
                                Command retry
                TransientShell qsave
                        Dialog dialog
                                Command yes
                                Command no
                                Command cancel
                Paned parent
                        Form formy
                                MenuButton fileButton
                                SimpleMenu fileMenu
                                        SmeBSB  new
                                        SmeBSB  load
                                        SmeBSB  insert
                                        SmeBSB  save
                                        SmeBSB  saveAs
                                        SmeBSB  resize
                                        SmeBSB  rescale
                                        SmeBSB  filename
                                        SmeBSB  basename
                                        SmeLine line
                                        SmeBSB  quit
                                MenuButton editButton
                                SimpleMenu editMenu
                                        SmeBSB  image
                                        SmeBSB  grid
                                        SmeBSB  dashed
                                        SmeBSB  axes
                                        SmeBSB  stippled
                                        SmeBSB  proportional
                                        SmeBSB  zoom
                                        SmeLine line
                                        SmeBSB  cut
                                        SmeBSB  copy
                                        SmeBSB  paste
                                Label status
                        Pane pane
                                Bitmap bitmap
                                Form form
                                        Command clear
                                        Command set
                                        Command invert
                                        Toggle  mark
                                        Command unmark
                                        Toggle  copy
                                        Toggle  move
                                        Command flipHoriz
                                        Command up
                                        Command flipVert
                                        Command left
                                        Command fold
                                        Command right
                                        Command rotateLeft
                                        Command down
                                        Command rotateRight
                                        Toggle  point
                                        Toggle  curve
                                        Toggle  line
                                        Toggle  rectangle
                                        Toggle  filledRectangle
                                        Toggle  circle
                                        Toggle  filledCircle
                                        Toggle  floodFill
                                        Toggle  setHotSpot
                                        Command clearHotSpot
                                        Command undo

bitmap に色を付けたければ、以下の行を xrdb で読み込むファイルの #ifdef COLOR セクションに取り込むこと。

*customization: -color


これにより、bitmap は配色カスタマイズ用の app-default ファイル( <XRoot>/lib/X11/app-defaults/Bitmap-color)を取り込む。 ここで、<XRoot> は X11 のインストールツリーのルートを示す。

Bitmap ウィジェット

bitmap ウィジェットはラスタイメージを編集するための独立のウィジェット である。このウィジェットは大きなイメージを編集するようには設計されてい ない(ただし、たまたま編集できるかもしれない)。このウィジェットを他のア プリケーションに組み込み、標準の編集ツールとして使うことも自由にできる。 以下に bitmap ウィジェットのためのリソースを示す。

Bitmap Widget
Header file             Bitmap.h
Class                   bitmapWidgetClass
Class Name              Bitmap
Superclass              Bitmap
Simple ウィジェットのリソースに追加されるリソース以下で全てである。
名前          クラス       タイプ       デフォルト値
foreground      Foreground      Pixel           XtDefaultForeground
highlight       Highlight       Pixel           XtDefaultForeground
framing         Framing         Pixel           XtDefaultForeground
gridTolerance   GridTolerance   Dimension       8
size            Size            String          32x32
dashed          Dashed          Boolean         True
grid            Grid            Boolean         True
stippled        Stippled        Boolean         True
proportional    Proportional    Boolean         True
axes            Axes            Boolean         False
squareWidth     SquareWidth     Dimension       16
squareHeight    SquareHeight    Dimension       16
margin          Margin          Dimension       16
xHot            XHot            Position        NotSet (-1)
yHot            YHot            Position        NotSet (-1)
button1Function Button1Function DrawingFunction Set
button2Function Button2Function DrawingFunction Invert
button3Function Button3Function DrawingFunction Clear
button4Function Button4Function DrawingFunction Invert
button5Function Button5Function DrawingFunction Invert
filename        Filename        String          None ("")
basename        Basename        String          None ("")

著者

Davor Matic, MIT X Consortium