ドット絵エディタEDGEのファイルをGIMPで開くためのプラグイン書いた
今までドット絵描くのにEDGEを使ってたわけなんだけど、ふとGIMPに移行しようとか思ったらどうしよう*1、とかよくわかんない心配をしたりして。
そうしたらEDGE形式用のC++ライブラリがあるじゃないですか。しかもソースコード公開されてるときた*2。
そこでふと
GIMPってPythonでプラグイン書けたよな…?
って思ってしまったんですよ。で、やや苦労しつつも四日くらいでできた。
長ぇ( ゚д゚)って思ったので続きを読むからで。
EDGE形式ファイルをGIMPで開くためのGIMPプラグイン (Python-fu)
仕様
- 透過色は背景色と同じもしくは近いパレットが設定されます
- レイヤーはちゃんと維持しますよ
- インデックスカラーのみ対応
苦労したこと
- Python-fuのドキュメントどこだー。
- GIMP Python Documentation これだと思うんだけど、けっこう読みにくい。drawableとか何モンだよ。
- サンプルコードないんですか
- デバッグしづらい。ちょうしづらい。みんなどうしてんのってレベルでやべぇ。具体的には
- 真面目にset_pixelをしまくるとべらぼうに遅いので、ちゃんと無視するところは無視しましょう
- EDGEの場合だと透過色扱いのやつ。layer.fill(TRANSPARENT_FILL) で埋めて透明じゃないところ以外を layer.set_pixel しないと10数秒かかることになる
- ただ透過してる部分がパレットの変なところにマッピングされてることがあってめんどい
- プラグインの実装だと、透明度が0 (完全透明) のやつは強制的に透過色のインデックスに変更してる