GNOME に報告した処、同日(即日!)に Developer の Ell さまが 該当ファイルの修正をして下さり、
問題解決となりました。 Ell さまに 感謝 !。
以下に詳細や 対応方法を。
再び になりますが、
GIMP Developer の Ell さまに 感謝!。
現象。 GIMP 2.10.8
Group Layer を 選択した状態で、 Python Script を実行すると、
その Dialog から OK ボタンを押した途端、以下のメッセージでストップします。
TypeError: can't pickle GroupLayer objects
GIMP に同梱された Fog Filter で表示される Message の例。
Filters > Decor... > Fog... (Open python-fu-foggify Dialog).
結論。 以下、Ell さま の Commit 群の中から抜粋。
d11d094d (代表的なもの)
https://gitlab.gnome.org/GNOME/gimp/commit/d11d094d020a3b255f748cbbd753e03e4a6bdf4d
GIMP > commit > d11d094d
Issue #1119 - Unable to give a layer group as a parameter to a python script
Pickle gimp.GroupLayer the same way we pickle gimp.Layer, so that
layer-group parameters can be properly saved.
All credit goes to Ofnuts :)
(cherry picked from commit b295a33a)
Detail (Not Python Code, html Base)
Showing with 6 additions and 5 deletions
plug-ins/pygimp/gimpshelf.py
@@ -53,11 +53,12 @@ def _display_id(obj):
def _vectors_id(obj):
return gimp._id2vectors, (int(obj.ID),)
- copy_reg.pickle(gimp.Image, _image_id, gimp._id2image)
- copy_reg.pickle(gimp.Layer, _drawable_id, gimp._id2drawable)
- copy_reg.pickle(gimp.Channel, _drawable_id, gimp._id2drawable)
- copy_reg.pickle(gimp.Display, _display_id, gimp._id2display)
- copy_reg.pickle(gimp.Vectors, _vectors_id, gimp._id2vectors)
+ copy_reg.pickle(gimp.Image, _image_id, gimp._id2image)
+ copy_reg.pickle(gimp.Layer, _drawable_id, gimp._id2drawable)
+ copy_reg.pickle(gimp.GroupLayer, _drawable_id, gimp._id2drawable)
+ copy_reg.pickle(gimp.Channel, _drawable_id, gimp._id2drawable)
+ copy_reg.pickle(gimp.Display, _display_id, gimp._id2display)
+ copy_reg.pickle(gimp.Vectors, _vectors_id, gimp._id2vectors)
del copy_reg, _image_id, _drawable_id, _display_id, _vectors_id
Ell @ell mentioned in issue #1119 (closed)
さて、
GIMP 2.10.8 に対する対応方法です。
(恐らく、次期 2.10.10 では commit が反映され、以下の対策は不要と思われます。)
問題は gimpshelf.py の修正で回避されます。
つまり、 次期の更新反映を待たずに、ファイルの入れ替えで、2.10.8 でも、問題回避が可能です。
該当ファイルの 標準インストール時の 完全パス は 以下の通りです。 OS : Windows
C:\Program Files\GIMP 2\32\lib\gimp\2.0\python\gimpshelf.py
先ずは、この既存ファイルを (念の為) リネームして残して置きます。
例 : gimpshelf.py.old.2.10.8
その上で、
以下の https://gitlab.gnome.org にある 公式ページから 更新済みファイル を入手します。
gimpshelf.py from
https://gitlab.gnome.org/GNOME/gimp/raw/b295a33aafe122f318e591546c1a2a9217fd19af/plug-ins/pygimp/gimpshelf.py?inline=false
Download 後のファイル情報は以下の通りです。
FileName : gimpshelf.py
FileDate : 2019/01/27 7:11:12 ( or * Downloaded Date * )
FileSize : 2910 (3KB)
MD5 : f5d4276f529b808aecbec1935c402f6a
SHA1 : 9223d99a982226e4b190276b6fdb583515065cae
HA256 : be9bba5deefc142c1951a7f05f6568e2c1c4c152924c1897297462a6f6507e55
一応、OS の Explorer Propaty から、
インターネット取得時の ブロック 解除 (許可)を行って下さい。
或いは、1行の挿入ですから、
専用エディタがあれば、上記を参考に 、直接編集してしまう手もあります。
該当ファイルを入れ替えます。 コピー若しくは移動。
場所(再掲) C:\Program Files\GIMP 2\32\lib\gimp\2.0\python
勿論、この場所は C:\Program Files 配下ですので、 管理者権限での 実行 許可 が必要です。
それを守らないと、リダイレクト機能が働き、正規の場所ではない所に飛ばされてしまいますので、
ご注意!を。 (これでは、意味が無く、GIMP も 更に 狂います。)
参考投稿 URL : PC program files リダイレクト先
これらの作業を経て、めでたく、正常化!。
万歳。 万歳三唱!。
0 件のコメント:
コメントを投稿