Other Alias
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