mieki256's diary



2016/03/18(金) [n年前の日記]

#1 [prog] GIMPのシームレスフィルタが再現できなくて悩んでいたり

Processingを使ってGIMPのシームレスフィルタを再現できないか試していたのだけど、これが上手くいかなくて。

今のところ、下のような結果になったのだけど。

sketch_make_seamless_ss.png
_sketch_make_seamless (Processing.js版)
_sketch_make_seamless.pde (ソース)

_GIMPのシームレスフィルタ と比べると、かなり違う結果に。

GIMPのシームレスフィルタの結果を検証。 :

例えば、以下の画像を元画像とした場合。見えにくいけど、左上が真っ黒、右下が真っ白、それ以外は透明になってる画像。
seamless_g_src.png

GIMPのシームレスフィルタをかけると、以下のような画像になる。
seamless_g_gimp.png

画像を4分割して、左上の領域と、右下の領域が合成されて、その合成結果が両方に描かれてる状態、とでも言うか。ちなみに、右上の領域と左下の領域も合成されて、両方に同じ内容が描画されているのだけど。

これを、今回 Processing で書いたソレで試してみると、以下のようになる。
seamless_g_processing.png

違いがお分かりいただけるだろうか。って全然違いますがな。そもそも同じ内容が描画されてないので、これではシームレスにならない。

この白黒のグラデーションは、2つの画像を合成する時の割合に相当するはず。つまり、x と y の値を使って、このグラデーション画像を生成する式さえ分かれば、GIMP のシームレスフィルタだって再現できるはず。

なのだけど。その式が分からない。思いつかない。どういう式にすれば、こういうグラデーションが描けるのだろう。

これは GIMPのソースを眺めてみるしかないかなと、GIMP 2.9.2 のソースをDLして解凍してgrepしてみたけど、それらしい部分が見つからなくて。gegl:tile-seamless だか plug_in_make_seamless_invoker だか、そのへんが関係してそうな気もするのだけど、どこに処理が書いてあるのやら。

以上です。

過去ログ表示

Prev - 2016/03 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project