mieki256's diary



2026/04/07(火) [n年前の日記]

#1 [gmic] G'MICのフィルタの作り方を勉強中。その8

G'MIC用のフィルタを作ってみたい。作り方について勉強中。

環境は Windows11 x64 25H2 + GIMP 2.10.38 Portable + G'MIC-Qtプラグイン 3.7.4。

G'MICでレイヤーを指定回数回転させる :

GIMP + G'MIC-Qtプラグインを使って、入力画像(入力レイヤー)を指定回数回転させたい。

何百種類もフィルタを持っている G'MIC のことだから、既にこういう処理をするフィルタもありそうだけど、G'MICでフィルタを作成する際の練習問題にはなるんじゃないかなあと…。以前 GIMP + Python-Fu で似た処理をするプラグインを書いたけれど、G'MIC でも同じことができるかどうかも気になるし…。

_mieki256 wiki - GIMPの全レイヤーを円状に配置するスクリプト

G'MICなら、こんな感じかなあ…。

cnt=6         # 回数を指定
[0]x{$cnt-1}  # 入力画像をn枚複製

ang={360/$cnt}   # 角度の増分を得る
repeat $!        # 画像スタック数分ループ。画像スタック数は $! で、ループインデックス値は $> で得られる
  if $>!=0
    rotate[$>] {$ang*$>},1,0,50%,50%  # 画像の中心を軸として回転
  fi
done

blend alpha  # 画像スタック全部をアルファチャンネルで合成

注意点。アルファチャンネルを使って合成してるので、RGBA画像/アルファチャンネルを持っているレイヤーを入力画像にしないと期待した結果が得られない。


G'MIC-Qtプラグインに登録するならこんな感じになるだろうか。

  • Windows環境の場合、C:\Users\(ユーザ名)\user.gmic に追記すれば使えるようになる。
  • あるいは G'MIC-Qtプラグインの Settings で *.gmic を追加する。
  • My Filters → m256 multiple rotations を選べば利用できる。

_fx_m256_multiple_rotations.gmic
#----------------------------------------
# m256 multiple rotations
# Author : mieki256 , 2026/04/07, License : CC0
 
#@gmic
#@gui ____<b>My Filters</b>

#@gmic fx_m256_multiple_rotations : Count, Interpolation, Boundary_conditions
#@gmic : Multiple rotations. Only RGBA images are supported.

#@gui m256 multiple rotations : fx_m256_multiple_rotations, fx_m256_multiple_rotations_preview(0)
#@gui : note = note("Multiple rotations. Only RGBA images are supported.")
#@gui : sep = separator()
#@gui : Count = int(6, 2, 256)
#@gui : Interpolation = choice(1, "None", "Linear", "Bicubic")
#@gui : Boundary conditions = choice(0, "Dirichlet", "Neumann", "Periodic", "Mirror")
#@gui : sep = separator()
#@gui : note = note("Authors : mieki256 , Latest update: 2026/04/06")

fx_m256_multiple_rotations :
  [0]x{$1-1}     # copying input image
  ang={360/$1}
  repeat $!
    if $>!=0
      rotate[$>] {$ang*$>},$2,$3,{w#0/2},{h#0/2}
    fi
  done
  blend alpha

fx_m256_multiple_rotations_preview :
  fx_m256_multiple_rotations $*

fx_m256_multiple_rotations_ss01.gif

以上、1 日分です。

過去ログ表示

Prev - 2026/04 -
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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project