2019年1月19日土曜日

GIMP Layer Mode Enum Names

GIMP の Layer Mode ...  。
Script や Plug-In を書く上で、 このモードを指定する事もある筈です。
さて、 昔、書かれたものを参考にすると ... 。
名前が違います。


一覧に纏めました。
左から、
GIMP 2.10.x Layer 種類 新、 並びに 旧 、GIMP 2.10.x Layer Mode 名(番号)、同 GIMP 2.8.22 参考 です。
GIMP 2.10.x の番号順に並んでいます。
新旧は各々、2.10.8 でモード変更選択時に表示される順番を拾いました。  此処での番号は順序を示すのみ です。
長いですが、... 。

Default Legacy ModeName (#) ModeName (#) 2.8.22 Ref.
01 LAYER-MODE-NORMAL-LEGACY (0), NORMAL-MODE (0),
02 02 LAYER-MODE-DISSOLVE (1), DISSOLVE-MODE (1),
LAYER-MODE-BEHIND-LEGACY (2), BEHIND-MODE (2),
22 LAYER-MODE-MULTIPLY-LEGACY (3), MULTIPLY-MODE (3),
12 LAYER-MODE-SCREEN-LEGACY (4), SCREEN-MODE (4),
LAYER-MODE-OVERLAY-LEGACY (5), OVERLAY-MODE (5),
41 LAYER-MODE-DIFFERENCE-LEGACY (6), DIFFERENCE-MODE (6),
14 LAYER-MODE-ADDITION-LEGACY (7), ADDITION-MODE (7),
42 LAYER-MODE-SUBTRACT-LEGACY (8), SUBTRACT-MODE (8),
21 LAYER-MODE-DARKEN-ONLY-LEGACY (9), DARKEN-ONLY-MODE (9),
11 LAYER-MODE-LIGHTEN-ONLY-LEGACY (10), LIGHTEN-ONLY-MODE (10),
51 LAYER-MODE-HSV-HUE-LEGACY (11), HUE-MODE (11),
52 LAYER-MODE-HSV-SATURATION-LEGACY (12), SATURATION-MODE (12),
53 LAYER-MODE-HSL-COLOR-LEGACY (13), COLOR-MODE (13),
54 LAYER-MODE-HSV-VALUE-LEGACY (14), VALUE-MODE (14),
45 LAYER-MODE-DIVIDE-LEGACY (15), DIVIDE-MODE (15),
13 LAYER-MODE-DODGE-LEGACY (16), DODGE-MODE (16),
23 LAYER-MODE-BURN-LEGACY (17), BURN-MODE (17),
33 LAYER-MODE-HARDLIGHT-LEGACY (18), HARDLIGHT-MODE (18),
32 LAYER-MODE-SOFTLIGHT-LEGACY (19), SOFTLIGHT-MODE (19),
43 LAYER-MODE-GRAIN-EXTRACT-LEGACY (20), GRAIN-EXTRACT-MODE (20),
44 LAYER-MODE-GRAIN-MERGE-LEGACY (21), GRAIN-MERGE-MODE (21),
LAYER-MODE-COLOR-ERASE-LEGACY (22), COLOR-ERASE-MODE (22),
31 31 LAYER-MODE-OVERLAY (23),
61 LAYER-MODE-LCH-HUE (24),
62 LAYER-MODE-LCH-CHROMA (25),
63 LAYER-MODE-LCH-COLOR (26),
64 LAYER-MODE-LCH-LIGHTNESS (27),
01 LAYER-MODE-NORMAL (28),
LAYER-MODE-BEHIND (29),
23 LAYER-MODE-MULTIPLY (30),
13 LAYER-MODE-SCREEN (31),
41 LAYER-MODE-DIFFERENCE (32),
15 LAYER-MODE-ADDITION (33),
43 LAYER-MODE-SUBTRACT (34),
21 LAYER-MODE-DARKEN-ONLY (35),
11 LAYER-MODE-LIGHTEN-ONLY (36),
51 LAYER-MODE-HSV-HUE (37),
52 LAYER-MODE-HSV-SATURATION (38),
53 LAYER-MODE-HSL-COLOR (39),
54 LAYER-MODE-HSV-VALUE (40),
46 LAYER-MODE-DIVIDE (41),
14 LAYER-MODE-DODGE (42),
24 LAYER-MODE-BURN (43),
33 LAYER-MODE-HARDLIGHT (44),
32 LAYER-MODE-SOFTLIGHT (45),
44 LAYER-MODE-GRAIN-EXTRACT (46),
45 LAYER-MODE-GRAIN-MERGE (47),
34 LAYER-MODE-VIVID-LIGHT (48),
35 LAYER-MODE-PIN-LIGHT (49),
36 LAYER-MODE-LINEAR-LIGHT (50),
37 LAYER-MODE-HARD-MIX (51),
42 LAYER-MODE-EXCLUSION (52),
25 LAYER-MODE-LINEAR-BURN (53),
22 LAYER-MODE-LUMA-DARKEN-ONLY (54),
12 LAYER-MODE-LUMA-LIGHTEN-ONLY (55),
65 LAYER-MODE-LUMINANCE (56),
03 LAYER-MODE-COLOR-ERASE (57),
04 LAYER-MODE-ERASE (58),
05 LAYER-MODE-MERGE (59),
06 LAYER-MODE-SPLIT (60),
LAYER-MODE-PASS-THROUGH (61),
LAYER-MODE-REPLACE (62),
LAYER-MODE-ANTI-ERASE (63)
ERASE-MODE (23),
REPLACE-MODE (24),
ANTI-ERASE-MODE (25)

どうですか?。
現行の GIMP (2.10.8) では、大きな問題はなさそうですが、
将来的に Enum Name での違いが 足枷 になる可能性はあります。
何時迄、古いものをサポートしてくれるかは未知数ですし ... 。

GIMP のソースコードを読んだ訳では無いので、
古いものをどのもの(Default と Legacy との差異吸収) に読み替えているのか、
不安は残りますし、ね。
  そこで、 試して見ました。
  古いものは LAYER-MODE-???-LEGACY に置換されますね。  2.10.8 Script-Fu Console
> (define val28 "LAYER-MODE-NORMAL (28)")
val28
> (define val00 "LAYER-MODE-NORMAL-LEGACY (0)")
val00
> (gimp-layer-get-mode 2)
(28)
> val28
"LAYER-MODE-NORMAL (28)"
> (gimp-layer-set-mode 2 NORMAL-MODE)
(#t)
> (gimp-layer-get-mode 2)
(0)
> val00
"LAYER-MODE-NORMAL-LEGACY (0)"
また、2.10.8 の LayerMode では Legacy と Default の組み合わせで差異は無いのかも。
少なく共、以下の組み合わせで見た目は変わりません。
G  Legacy+Default  (Group:Default)
    GIMP Splash Screen Mode:Screen
    GIMP Splash Screen Mode:Normal(l)
G  Legacy  (Group:Legacy)
    GIMP Splash Screen Mode:Screen(l)
    GIMP Splash Screen Mode:Normal(l)
G  Default+Legacy  (Group:Default)
    GIMP Splash Screen Mode:Screen(l)
    GIMP Splash Screen Mode:Normal
G  Default  (Group:Default)
    GIMP Splash Screen Mode:Screen
    GIMP Splash Screen Mode:Normal
但し、Default Legacy 双方に係わる Overlay 等で、これへ切り替える場合、
Script から切り替えるのと、Layer Dialog から切り替えるのとで、
Default Legacy の表示が異なっています。  う~ん ?。  効果的には同じなのでしょうが ... 。



もし、古いスクリプトやプラグインの動作で、思った通りの結果が得られないとか、
途中でエラーになって進まないとか、 の不具合(実際には 混乱 !)に出会ったら、
上述の点を思い出して下さい。
Layer Mode に限らず!、
単に、その、Enum Name が古いものであるから、かも知れません。



注意喚起!。 *1.
Python に於いては、各 Enum 名の '-' を '_' に置換して記述するべき、です。
自動変換はしてくれませんので、注意!。



現状の Layer Mode 指定では、問題らしきものはありませんが ... 。

  一例: 別例での参考: GIMP Script-Fu (12) GIMP バージョンの影響



[2019/02/05] Script Python 上での注意事項を追記 *1.
[2020/02/22] 表見出し誤字訂正

0 件のコメント:

コメントを投稿