mieki256's diary



2015/03/20(金) [n年前の日記]

#1 [gimp] GIMPのRGB交換

某所を眺めてたら「GIMPのRGB交換って機能が見当たらないのですけど」という話があって。そんな機能あったっけ、と思って調べ始めたり。

たしかに、質問者が提示したドキュメントには、そういう機能がある、と書いてある。

_Adjust Fgrd. - Bkgrd.
このフィルタは、二重視の幻想、めまい、画像の中の運動をつくりだします。モーションぼかしを単に適用するかわりにカラーチャンネルを交換します。

右クリック|フィルタ|色|RGB交換は、R、G、Bチャンネルを異なる方向に交換することにより作用します。各チャンネルをX軸とY軸と独立に移動することができます。チャンネルを水平にまたは垂直に移動するためにはチャンネルのXまたはYスライダをドラッグするか、値をタイプします。プレビューウィンドウがあります。そこで、スライダをドラッグするときに起きる移動を見ることができるでしょう。

Adjust Fgrd. - Bkgrd. より

てっきり名前からして、RGBチャンネルを入れ替えてくれる機能かなと思いきや、ダイアログのスクリーンショットを眺めてもそういう機能には見えず。RGBチャンネルのそれぞれの表示位置をずらすための入力項目しか並んでないわけで。ていうか、説明文を読んでも、そうとしか思えない。

ダイアログ画像の上の方を見ると「RGB displace」と書いてあった。おそらく、当時翻訳した方は、「displace」を「交換」と訳したけど、この場合は「位置をずらす」という意味だったのではないかなと想像。

「rgb displace」でググってみたら、英語でのやり取りが見つかった。

_GIMP for Windows &Mdash; Re: RGB displace gone ?

GIMP 1.x にはあったけど、GIMP 2.x では無くなった機能らしい。「この機能が欲しかったら自分でAPIを書きなよ」と言われてるように見えた。御無体な。

GIMP 2.x で実現する方法を考える。 :

GIMP 2.x には、 _チャンネル分解 という機能がある。RGBチャンネルを、各レイヤー、もしくは各画像に変換してくれる。呼び出し方は、色 → 色要素 → チャンネル分解。

このチャンネル分解を使って、RGBチャンネルを別レイヤーにした後、各レイヤーの位置をずらしてやれば、RGBチャンネルがそれぞれずれた状態になった、と考えることができる。

その後、 _チャンネル合成 をすれば、RGB画像に戻せる。呼び出し方は、色 → 色要素 → チャンネル合成。

でもまあ、面倒臭い。できればそこそこ自動化したい。ということで Script-fu スクリプトを書き始めたりして。

しかし、元々の「RGB交換」の処理がちょっと分からない。
  • 選択範囲を作って呼び出した場合、その選択範囲の中だけ処理をしてくれるのか?
  • 端はどうなるのか。巻き戻すのか、透明になるのか、背景色で埋め尽くされるのか?
そのあたりの仕様が分かれば、Python-fu で書いて、1ピクセルずつ読んでRGB値を取り出して、きっちり仕様を再現することもできそうだけど。

まあ、そこまで再現する必要もないよな。今まで、その機能が無かったことで困ってた人は居ないだろうし。困ってる人が居たら、誰かがプラグインを書いてるはずだよな。…実は既にあるんじゃないかな。難しい処理ではないし。

以上です。

過去ログ表示

Prev - 2015/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