これは何をするものか

ソースコードパッチ

現在、ソースコードパッチのみ公開中です。

対象者

gimpを自分でコンパイルできる人。

ライセンス

gimpのソースコードの派生物なのでGPLです。

ダウンロード

最新版にするには、下記のパッチをすべてダウンロードして、上から順番にパッチをすべて当ててください。

変更履歴

2007-08-19 補正関数を速度ベースのガウシアンフィルタに変更。 カーソルへの追随性が向上。 ツールオプションのデフォルト値を変更。(+下のパラメータ説明にお奨め範囲を記載)

2007-08-18 ポインタの補正に重み付けを導入。

2007-08-16 最初のリリース



テスト環境

ubuntu 07.04 (Feisty Fawn) OSは関係いはず。

gimp-2.2.17 (本家よりダウンロード)

diff -uNrでパッチ作成

./configure --disable-print でテスト(gutenprint非対応?だから)

パッチ適用方法

gimp-2.2.17のソースコードを展開 (tar jxf gimp-2.2.17.tar.bz2 など) cd gimp-2.2.17 patch -p1 < <パッチのディレクトリ>/gimp-2.2.17-gpen-work.diff patch -p1 < <パッチのディレクトリ>/gimp-2.2.17-gpen-work-<日付>-<番号>.diff ...... ./configure [オプション: 当方では--disable-print] make make install #ルート権限必要

使い方

道具箱パレットに"G-Pen"が追加されます。(アイコンはインクと一緒。ショートカットは"G")

インクツールと同じように使います。

線を引くときに手ブレが補正されます。 (2007-08-18より)カーソルを動かす速度によって補正率が変わります。ゆっくりマウスを動かすと強く補正され、素早くマウスを動かすと補正率は弱くなります。

ツールオプションに"Pointer Adjustment"という項目が追加されます。各オプションの意味は次のとおり。

"Quality" 補正するために使用する過去のサンプル数を指定します(1-20)。数が大いほど滑らかな曲線の補正になります。 1の場合は普通のインクツールと同じです。(20をお奨め) "Rate"(2007-08-18より) 補正に関する適用割合を指定します(0-1000)。数値が大きいほど補正の適用割合が大きくなります。ただし、適用される効果は割合と比例関係にはないので注意が必要です。デフォルト値=25 (20-50程度がお奨め) "Draw pen line to finished point" 補正が強くなると抜きの部分が途中で止まるような感覚になる。このチェックを入れると最後のカーソル位置まで線を引くようになる。(これはこれで使いづらい) (オフにすることをお奨め)

既知のバグ

線の「入り」の部分の補正が弱い。→アルゴリズム上しかたない。多分気にならないレベル。

ツールオプションにブラシの選択メニューが出る。なぜ？

ときどき、undo tileがないと言われる。undo関係はサボりまくっているので詳細未調査。

移動平均なので、最後の抜きが変。"Draw pen line to finished pointer"のチェックオン・オフでちょっと挙動が変わることで回避中。

ソースコード

なんでGimpInk関係のファイルをGimpInk2にリネームしているの？ ここだけモジュール化できたらいいなぁっていう部分を抜き出しました。モジュールでgimpオブジェクトを参照できれば、本体に手を加えなくても良くなるはず...

なんでGimpInk2はGimpInkを継承してないの？ 継承するようにしたら動かなくなったから。push_undo関係が継承関係に依存したコードになってるような... 謎です。

なんで移動平均なの？ 線分補完をする方法だと、いくつかのサンプル点が集まったときにようやくある区間の線分がかけるようになります。こういった方法だと、補間曲線をかくときに一気に数点で指定される曲線をかくことになります。一方、gimpはmotionイベントがあるたびに、直前の位置から新しい位置までの直線を引く処理になっています。つまり、毎回一本の直線を引く処理になっています。これを最初に言った方法に変えるのは面倒だったので（ぉぃ）、最小限の変更で済む、しかも簡単な方法として移動平均を使ってます。結果的には結構良い特性を持っていたようです。(補完点が必ず内挿されるのでブレが小さくなる→手ブレ補正にピッタリ)



コメント・フィードバック

もしなにかあればこちらへどうぞ。(レスポンスは遅いと思います...)