2020/01/01(水) [n年前の日記]
#2 [gimp][python] Python-FuでGIMPのバージョンを調べる
GIMP + Script-Fu で、GIMPのバージョンを調べる方法については、昨日実験したけれど。
_mieki256's diary - Script-FuでGIMPのバージョンを調べる
同じことを Python-Fu でやろうとした場合、どう書けばいいのか気になったので実験してみたり。
動作確認環境は以下。
今頃気が付いたけど、Windows10 x64 1909 + GIMP 2.6.12 の Pythonコンソール上では、文字入力ができないな…。コピー&ペーストで、どうにか実行してみたけれど…。
考えてみたら、Python-Fu が標準で使えるようになったのは GIMP 2.8 以降だから、GIMP 2.6上で動作確認する必要はなかったのかもしれない。Python-Fuスクリプトに関しては、GIMP 2.6以前は未対応、という扱いにするほうが妥当な気もする。
_mieki256's diary - Script-FuでGIMPのバージョンを調べる
同じことを Python-Fu でやろうとした場合、どう書けばいいのか気になったので実験してみたり。
動作確認環境は以下。
- Windows10 x64 1909
- GIMP 2.10.14 (2.10.15?) Portable x86 samj版
- GIMP 2.8.22 Portable
- GIMP 2.6.12 公式バイナリ版
GIMP 2.10.15 Python Console Python 2.7.17 (default, Oct 23 2019, 05:51:06) [GCC 9.2.0 32 bit] >>> from gimpfu import * >>> gimp.version (2, 10, 15) >>> (gimp.version[1] >= 8) True
GIMP 2.8.22 Python Console Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] >>> from gimpfu import * >>> gimp.version (2, 8, 22) >>> (gimp.version[1] >= 8) True
GIMP 2.6.12 Python Console Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] >>> from gimpfu import * >>> gimp.version (2, 6, 12) >>> (gimp.version[1] >= 8) False
今頃気が付いたけど、Windows10 x64 1909 + GIMP 2.6.12 の Pythonコンソール上では、文字入力ができないな…。コピー&ペーストで、どうにか実行してみたけれど…。
考えてみたら、Python-Fu が標準で使えるようになったのは GIMP 2.8 以降だから、GIMP 2.6上で動作確認する必要はなかったのかもしれない。Python-Fuスクリプトに関しては、GIMP 2.6以前は未対応、という扱いにするほうが妥当な気もする。
◎ 小数点以下もアリにするのはどうか。 :
将来的に GIMP 3.0 が登場した際には、こういった判別方法では問題が起きるだろうけど。考えてみたら、バージョン番号を数値化する際に、小数点以下も持っている状態にすれば、判別が楽なのかもしれないと思えてきた。
アレ? なんで 3.0 になるんだ?
あー。10 に 0.1 を掛けたら 1.0 になるから、2.0 + 1.0 で 3.0 になっちゃうのか…。ということで、この方法ではちょっと上手くいかない予感。
むしろ、バージョン番号の最初の数値の桁を大きくしたほうがいいのかな…。
一応目的は果たせそうではあるけれど、これもこれでなんだかちょっと珍妙なことをしている印象もあるなと。
GIMP 2.10.15 Python Console Python 2.7.17 (default, Oct 23 2019, 05:51:06) [GCC 9.2.0 32 bit] >>> from gimpfu import * >>> (gimp.version[0] + gimp.version[1] * 0.1) 3.0 >>> (gimp.version[0] * 1.0 + gimp.version[1] * 0.1) 3.0
アレ? なんで 3.0 になるんだ?
>>> gimp.version (2, 10, 15)
あー。10 に 0.1 を掛けたら 1.0 になるから、2.0 + 1.0 で 3.0 になっちゃうのか…。ということで、この方法ではちょっと上手くいかない予感。
むしろ、バージョン番号の最初の数値の桁を大きくしたほうがいいのかな…。
>>> (gimp.version[0] * 1000 + gimp.version[1]) 2010 >>> ((gimp.version[0] * 1000 + gimp.version[1]) >= 2008) True
一応目的は果たせそうではあるけれど、これもこれでなんだかちょっと珍妙なことをしている印象もあるなと。
[ ツッコむ ]
以上です。