2026/04/03(金) [n年前の日記]
#1 [gmic] G'MICのフィルタの作り方を勉強中。その4
G'MIC用のフィルタを作ってみたい。作り方について勉強中。
環境は Windows11 x64 25H2 + GIMP 2.10.38 Portable + G'MIC-Qtプラグイン 3.7.4。
環境は Windows11 x64 25H2 + GIMP 2.10.38 Portable + G'MIC-Qtプラグイン 3.7.4。
◎ 画像を新規作成 :
G'MIC で画像を新規作成する際の記述がよく分からない…。
とりあえず、width(幅), height(高さ), depth(スライス数), spectrum(チャンネル数) を列挙すれば、画像スタックに新しい画像が作成されると分かった。
以下の事例では、RGB画像(チャンネル数=3)、RGBA画像(チャンネル数=4)を作成できる。幅と高さには100%等のパーセント指定も使える模様。100%なら、既に入力済みの画像の幅と高さを指定しているのと同じになる。
Various → Custom Code、で、Desplay Debug Info on Preview にチェックを入れた状態で上の記述を実行すれば、画像スタックに新しい空の画像が作成されていることが分かる。
どうやら G'MIC は、数値から始まる指定を新規画像作成として解釈するっぽい。もしかすると数値の前に、入力画像を指定するコマンド = input が暗黙的に指定されてるものと解釈してるのかもしれないけれど…。
それはさておき。こういった指定の後に、数式を記述することで画像内の初期化ができるらしくて…。そこをどう書けばいいのかが分からない…。
例えば以下を記述するとチェック模様が作れるのだけど…。
ん? もしかして…。これならどうだ。
真っ赤な画像が作成された。つまり、[R,G,B,A] を書いておけばその色で初期化されるようだな…。
ちなみに以下のページで、新しい画像を作成しつつ、チェック模様にしたり、グラデーションをつけたりする事例が提示されてる。数式を指定することで比較的複雑(?)な初期化もできる模様。
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
余談。上記のページは背景の指定が何かおかしいようで、テキストが読みづらい…。背景を削除する以下のブックマークレットを用意してどうにか読んだ。
とりあえず、width(幅), height(高さ), depth(スライス数), spectrum(チャンネル数) を列挙すれば、画像スタックに新しい画像が作成されると分かった。
以下の事例では、RGB画像(チャンネル数=3)、RGBA画像(チャンネル数=4)を作成できる。幅と高さには100%等のパーセント指定も使える模様。100%なら、既に入力済みの画像の幅と高さを指定しているのと同じになる。
100%,100%,1,3 100%,100%,1,4
Various → Custom Code、で、Desplay Debug Info on Preview にチェックを入れた状態で上の記述を実行すれば、画像スタックに新しい空の画像が作成されていることが分かる。
どうやら G'MIC は、数値から始まる指定を新規画像作成として解釈するっぽい。もしかすると数値の前に、入力画像を指定するコマンド = input が暗黙的に指定されてるものと解釈してるのかもしれないけれど…。
それはさておき。こういった指定の後に、数式を記述することで画像内の初期化ができるらしくて…。そこをどう書けばいいのかが分からない…。
例えば以下を記述するとチェック模様が作れるのだけど…。
100%,100%,1,4,"xor(x,y) % 64 < 32 ? [ 255,0,0,255 ] : [ 255,255,255,255 ]"
ん? もしかして…。これならどうだ。
100%,100%,1,4,[255,0,0,255]
真っ赤な画像が作成された。つまり、[R,G,B,A] を書いておけばその色で初期化されるようだな…。
ちなみに以下のページで、新しい画像を作成しつつ、チェック模様にしたり、グラデーションをつけたりする事例が提示されてる。数式を指定することで比較的複雑(?)な初期化もできる模様。
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing
100%,100%,1,3,"xor(x,y) % 64 < 32 ? [ 255,0,0 ] : [ 255,255,255 ]" 100%,100%,1,3,"lerp([ 32,128,99 ],[ 0,0,16 ],y/(h-1))"
余談。上記のページは背景の指定が何かおかしいようで、テキストが読みづらい…。背景を削除する以下のブックマークレットを用意してどうにか読んだ。
javascript:(function(){document.body.style.backgroundImage='none';document.body.style.backgroundColor='#ffffff';})();
◎ fill_colorについて :
単に画像全体を特定の色で塗り潰したいなら fill_color が使える。
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Reference Documentation - fill_color
fill というコマンドもあるのだけど、どうやらそれは各ピクセルの内容をずらずらと列挙することでその内容を書き込んでいくコマンドのようだった。これも数式を書くことで複雑な図形を描くことができるっぽい。数学が得意な人なら凝ったことができるのだろうな…。
_fill (f)
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Reference Documentation - fill
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Reference Documentation - fill_color
fill_color 0,0,255,255 # 青色で塗り潰す。おそらく画像スタックの全画像を塗り潰す 100%,100%,1,4 # 新規画像を作成 fill_color[-1] 255,0,255,255 # 新規画像([-1])を紫で塗り潰す
fill というコマンドもあるのだけど、どうやらそれは各ピクセルの内容をずらずらと列挙することでその内容を書き込んでいくコマンドのようだった。これも数式を書くことで複雑な図形を描くことができるっぽい。数学が得意な人なら凝ったことができるのだろうな…。
_fill (f)
_G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing - Reference Documentation - fill
[ ツッコむ ]
以上です。