[ Python , Gimp ] pgimp (Python-fuを少し使いやすくするツール) を Windows で使う

最近やはり記憶力が落ちたと思って、ふと思い立って キーボード図付きの IntelliJのショートカットの一覧を作りたいと思った。山ほどあるショートカットの図をいちいち作っていたのでは手間だし、今風の効率化ではないので半自動でプログラムで起こしたいと思った。

そこで昔少し案件でGIMPのスクリプト(Script-fu)で簡易画像ツールを作ったことがあるのだが最近のGIMPを調べたら、Pythonで操作できる時代になったと書いてあった(Python-fu)

ああ、確かにScript-fuはとんでもなく正体不明な言語(今見るとLisp似なのか?)だったのを思い出して、今風言語で書けるとはこれはいいやと思って触りはじめた。

実は私はPythonはあまりきちんと理解しておらず(AI寄り言語だというのに初心者本を斜め読みしたくらい)この際Pythonの勉強もかねて勉強してみようと思った。

http://gimpbook.com/scripting/
https://www.gimp.org/docs/python/
https://developer.gimp.org/api/2.0/
https://qiita.com/dhomma/items/f33ecd1c4d4c6ece7685

とりあえずHelloWorld的なPython-fuのコードをコピペして動かしながら検討していたら、これは IDEで編集支援して欲しいな、と思った。GIMP側のソースか何かでドキュメント付きDLLを作ればよいのではないかと思ったがそこまでPythonに明るくないし、だいたい最近欲しいと思った機能は誰かが作っている時代なので検索したら、やっぱり pgimp というライブラリがあった。

https://github.com/mabu-github/pgimp

が、これがWindowsに対応していない と出たのでどうにか使えるようにした話を以下に記します(前置きが長い)

まず windows上でpython2,python3環境を作った状態でpipでpgimpのインストールを試みたが確かにエラーが出て進まない。いろいろ考えた末に見つけた解決策は

  • WindowsのWSL でUbuntu Linuxを内部実行してそこからpgimpを動かすというのが一番悩まずに済むと判断。
  1. Windows WSL のUbuntuを導入
  2. WSL Ubuntuにpython2,python3を設定
  3. Ubuntuにpgimpを導入
  4. IntelliJ IDEA からWSL Ubuntu経由でのpgimpを実行

このあたり https://pgimp.readthedocs.io/en/latest/tutorial.html#create-an-image-and-export-it のサンプルコードも問題なく実行/シンボリックデバッグできて解決。IDE側の文脈支援やヘルプも動作する。ここまで来るまでの試行錯誤が面倒だった。。。ただColor等の細かい定義まで取り込むことは出来ていないようで、残念なことにPythonから直にGIMPを操作する分には基本的な生データしか処理出来ないようだ。主な目的はIDEの補完入力を手伝うみたいな方向と思われるが当初の目標は満たせるか。

環境の構築に気力を使うのは今の時代のやり方ではない。WSLでシンプルに解決出来るならそれが何よりだ。