BITMAP(1)

名前
bitmap, bmtoa, atobm - ビットマップのエディタとコンバータ

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

bmtoa [ -chars ... ] [ filename ]

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

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

bmtoa と atobm フィルタはビットマップファイル(「ファ イルフォーマット」セクションを参照)と 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