■■■■  Xbrush   Ver0.732
                         15/07/27
                         CQA01135@nifty.com
                         http://blogs.yahoo.co.jp/aki03203
                           田崎あきら



0.はじめに

  Xbrushは、画像を24ビットカラーで編集することが出来るペ
 イントソフトで、左クリックで描画、右クリックでスポイト機能と操作
 性を上げております。
  また、拡大/縮小と表示位置の移動をキーボードで行うことが出来ま
 す。
  XInput 拡張命令を使い、タブレットが使用できるようになりました。
  linuxwacom で動作確認をしております

1.インストール

  インストールの方法は、 Install を参照して下さい。

2.起動の仕方

  xbrush (return)

  とすれば、xbrush が立ち上がります。
  デフォルトで、650x600 ドットの画像が扱えます。
  画像の大きさを指定する場合は、-x と -y のオプションを付けて、

  xbrush -x 700 -y 800 (return)

  などとすれば、700x800 ドットの画像が編集できます。

  ファイル名を指定する場合は、

  xbrush <ファイル名> (return)

  で読み込みます。
  この場合は、上に書いた画像の大きさの指定は無視され、画像の大きさは
 指定したファイルの大きさになります。

  タブレットを使う場合には、

  xbrush -device <デバイス名> (return)

  と、X-Window の設定ファイルで指定したタブレットのデバイス名を
 -device の後に続けて書きます。
  デバイス名は XF86Config か xorg.conf で指定してあるものです。
  (*大体の場合、タブレットのデバイス名は stylus で登録してあると思
 います)
  また、プログラム起動後に、後述のタブレット設定パネルでも使用する
 タブレットの指定もできます。

3.使い方

  起動すると、描画ウィンドウとさまざまな操作を行うコンソールウィンドウが
 表示されます。

  
           図3.1 Xbrushのウィンドウ


図3.2 コンソールウィンドウ
 右が xbrush のコンソールウィンドウです。

 一番上の"x="、"y="は、画像に対するポインタの位置を示しています。
 "zoom="はその時の表示倍率の数値を示しています。
 "Menu"はメニューボタンです。
 "Undo"はアンドゥボタンです。
 これを押すと直前に描いた物が消去され、もう一度押すとボタンを押す前の 状態に戻ります。
 (つまり、アンドゥが効くのが1回のみ)
 "Lock"はアンドゥロックボタンで、
このボタンが押された時の画像を保持し、アンドゥロック になっている状態でアンドゥボタンを押すと、描画を繰り 返していてもロックされた時点の状態に戻ります。
 その下のグラフは、中心から外側へ向かってのブ ラシの濃度を2次関数として表しています。
 "dens="はブラシの濃度(描画する濃度)を示し1〜255 までスクロールバーで指定できます。
 "size="はブラシの大きさを示し、1〜180ドットまでスクロールバーで自由に選択できます。
 その下の"r、g、b"は、描画する色を決めるスクロールバーです。
 選択された色は、一番下の色表示ボックスに描かれます。



 3.2 描画ウィンドウ

   描画ウィンドウでの操作は、左クリックで現在の選択された色、大きさ、
  濃度で画像に対して描画します。
   右クリックをすると、ポインタの位置にある画面上の色を描画する色に
  設定するスポイト機能として動作します。

        

          図3.3 描画ウィンドウへの描画


         

         図3.4 スポイト機能

  右クリックするとポインタ位置の色が色選択に反映されます。

 3.3 キーボードの操作

  キーボード上での操作は以下のようになります。


   PageUp  又は Ctrl + z : 画像を拡大表示

   PageDown 又は Ctrl + x : 画像を縮小表示

     ↑   : 表示する画像領域の位置を上げる

     ←   : 表示する画像領域の位置を左にずらす

     →   : 表示する画像領域の位置を右にずらす

     ↓   : 表示する画像領域の位置を下げる


 3.4 各種メニュー

  関数表示メニュー

   コンソールウィンドウのブラシ関数表示領域内で左クリックすると、使用
  できるブラシの形を関数で表示し、その選択した関数によってブラシの形
  を変え、コンソールに表示するブラシ関数グラフも変わります。
   現在使える関数は、y=1、y=1-x^2、y=1-x、y=1-sqr(x) の4種類です。

              

            図3.5 関数表示メニュー


  標準メニュー

   コンソールウィンドウで、右クリックすると標準メニューが表示されます。

              

            図3.6 Main メニュー

   現在は、セーブ/ロードのファイル選択[Filesel]、エディット[Edit]、
  マスク操作[Mask]、タブレット調整[Institute]、終了[Quit]が選択できます。

   ●Filesel メニュー

   Filesel メニューを選択すると、ファイルのロードやセーブを行うため
  のパネルが表示されます。

         

            図3.7 filesel パネル

   中央に現在のディレクトリにあるファイル名が表示されているので、
  セーブ、又はロードしたいファイル名をクリックします。
   すると、上から2段目のボックスに選択したファイル名が表示されます。
   この状態で Load ボタンを押すと、選択したファイル名を読み込みます。
   Save ボタンを押すと、選択したファイル名でセーブします。
   ファイル名を変更したい場合は、2段目のボックスにポインタを合わせ
  てキーボードから入力します。
   Cansel ボタンを押すと、パネルが消えます。

   Save ボタンを押すと、図3.8の様な画像フォーマット選択パネルが
  開きます。
   ここで画像フォーマットを選択できます。
   Jpeg や PNG を選択すると、保存品質を変更することができます。
   マスクをセーブする場合は、xbr を選択してください。
   他のフォーマットを選択すると、マスクの情報が保存されません。

             

            図3.8 save dialog パネル


   ●Edit メニュー

   編集メニューでは、現在編集している画像をクリアする項目が選択できます。

              

            図3.9 Edit メニュー

   [Clear Canvus] をクリックすると、画像全体が白で塗りつぶされます。


   ●Mask メニュー

   マスクの設定を行うメニューです。

              

            図3.10 Mask メニュー

   [Ordinary Paint] は、マスクに関係なく描画するモードです。
   [Reflect Paint] が選択された状態で描画すると、マスクされた部分は
  描画しません。
   [Draw Mask] マスクを描きます。
   [Erase Mask] マスクを消去するモードです。
   [Disp only Mask] DrawMask か EraseMask が選択された場合に、マスク
  だけを表示します。
   [Turn Mask] 描かれているマスクを反転させます。
   [Auto Mask] 自動マスクパネルが開きます。


   ●Institute メニュー

   タブレットからの入力の設定を行うメニューです。

              

            図3.11 Institute メニュー

   [Size base] は筆圧をブラシの大きさに対応させます。
   [Dens base] は筆圧をブラシの濃度に対応させます。
   [Tabletto parameter] をクリックすると、タブレットからの入力値の調整
  を行います。


 3.5 マスク

   Ver0.72からマスクを使うことが出来ます。
   [Mask]メニューの [Ordinary Paint] を選ぶとマスクに関係無く描画で
  きます。
   [Draw Mask] を選ぶと画像にハーフトーンを掛けてマスクを描画状態にし、
  左クリックでマスクを描画します。
   大きさと濃度は、コンソールに示してあるブラシの大きさと濃度と共通です。

           

             図3.12 マスク描画


   マスク濃度は黒で表し、表示して有る黒の濃度が濃いとマスクの濃度も
  濃くなります。
   マスクの濃度は0〜255の256階調で表されます。

   マスクメニューの [Erase Mask] を選ぶと、描いてあるマスクを消去で
  きます。

           

             図3.13 マスク消去


   [Reflect Paint] を選ぶとハーフトーンが消えて、マスクは残ります。

            

             図3.14 マスク反映描画モード


   この状態でマスクの上に描画すると、マスクの濃度が濃い場合には描画
  濃度は逆に薄くなります。

            

             図3.15 マスクの上からの描画



   [Disp only Mask] を選ぶと、[Draw Mask]/[Erase Mask] モードの時のみ
  画像は表示せずにマスクのみ表示するようになります。

            

             図3.16 マスクのみ表示


   [Turn Mask] を選ぶとマスクを反転させる事が出来ます。

            

             図3.17 マスク反転


   [Auto Mask] は、色の強さによって自動的にマスクを掛けるものです。
   スキャナなどで取り込んだ画像の主線にマスクを掛けるときなどに使用します。
   [Auto Mask] を選ぶと、図3.18のようなパネルが表示されます。

           
             図3.18 自動マスク機能


   [Mask strength] は、元の画像の色の濃さの何倍でマスク濃度を設定す
  るかです。

   [Thresh hold] 値によって、マスクを掛ける色の濃さの範囲を設定する
  ことが出来ます。
   図3.19の様に、設定した [MIN] の値よりも描かれている色の輝度
  が薄い場合にはマスクをかけず、設定した [MAX] の値よりも描かれてい
  る色の輝度が濃い場合にはマスクを 100% かけるようにします。

       
       図3.19 自動マスク機能
               色の輝度とマスク濃度の関係



 3.6 タブレットからの筆圧入力

   X-Window がタブレットを使用できる状態で、Xbrush を起動時に
  device オプションをつけた場合は、タブレットからの筆圧を受け取るこ
  とができます。

   [Institute] メニューで [Size base] を選ぶと、筆圧を大きさに対応
  させて描画し(図3.20)、[Dens base] を選ぶと筆圧を濃さに対応さ
  せて描画します(図3.21)。

         

           図3.20 筆圧を大きさに対応させた場合

         

           図3.21 筆圧を濃さに対応させた場合


   [Institute] メニューで [Tabletto parameter] を選ぶと、図3.22の
  様なパネルが表示されます。

            

         図3.22 タブレット入力調整パネル

   このパネルで、タブレットのデバイスを選択することによって、筆圧を
  受け取ることができます。
   [Cut off Pressure] の数値は、タブレットから受け取った筆圧から引く
  値です。
   実際に描画する筆圧は、タブレットの筆圧からこの値を引いた筆圧にな
  ります。
   (なぜこの様な事をするかというと、X-Window でクリックしたと感じ
  るのには、ある程度の筆圧が必要になるためです)

   [Pressure magnifaction] は、実際に描画する筆圧を、感知した筆圧の
  何倍にするかの値です。
   最近のタブレットは、分解能が高いので、1.00よりも低くしたほうが
  使いやすいかと思います。

4.注意点

  このソフトは、X-Window system が MIT-SHM をサポートしている 24bit
 カラーの環境で使用して下さい。

  このソフトはフリーソフトです。
  無保証なので、個人の責任において使用してください。
  個人でプログラムの変更や改造は構いませんが、変更した物の配布は今の
 所止めて下さい。(仕様が次々と変更されると思うし)

5.その他

  元々は X-Window 上で動くペイントソフトとして作っていたのが、超漢字
 に移植してから超漢字版の開発を進めて、改めてまた X-Window に再移植と
 いう変な経過を辿ってしまいました。
  移植には変更を最小限にして、ちゃんとマージしようと思ったものの、
 どうしてもマッチングが取れなかった所が有って(特にイベント関係が)、
 あまり良くないソースになってしまいました。

  タブレットの入力は、Frederic Lepied 氏作の xinput を参考に致しました。
  厚く御礼申し上げます。

  <<開発環境>>
  AT互換機
  Vine Linux 6.3 + xorg + linuxwacom