はじめに

Share

できること

このGimpプラグインでは下記のことができます。

  • Gimpのパスツールを使い指定した点(アンカー点)から2点を選択し、この2点における色空間の値を表示します。
  • この2点の色空間での距離を求めて表示します
  • 色空間は、sRGBとCIEL*a*b*に対応しています
  • 画像はGimpが扱えるもので、RGBまたはアルファチャンネル付きのRGBが対象です

なお、色空間の名称や内容については、ここでは述べませんので書籍やインターネット等で調べてください。

 

なぜ作成したのか?

Gimpで画像を表示した際に、色空間の距離(例えば、r,g,bのそれぞれの値がどれくらい異なっているのか?)をその場で知りたいと思うときがありました。

通常なら、Gimpのピクセル情報のダイアログを使い、求めたい画素の画素値を記録しておき、手作業で距離を計算する事になると思います。または、画像関連のライブラリを利用して、指定点間の距離を計算して出力するプログラムを書くことになると思います。

前者の方法だとごくわずかな回数であれば対応できますが繰り返し行うとなると労力の無駄です。後者の方法をコマンドラインベースのプログラムで実現するのは難しくはないのですが、画像を見ながら便利に操作できるようにGUIを用意すると途端に手間がかかってしまいます。

そこで、今回はGimpのプラグインとして上記機能を実装することで、なるべくGUIで操作が可能で、かつ、必要な情報を得ることができるようにしてみました。

 

動作環境

ざっくり述べるとこのプラグインはUbuntuで動作しますが、他のOS(含むLinux)では動かないと思います。

詳細は次のとおりです。

以下の環境で動作確認を行っています。

  • OS:Ubuntu 9.04 Desktop 日本語 Remix版
  • Gimp:2.6.6 (Ubuntu に付属のバージョン)
  • プラグインの言語:python 2.6
  • 使用しているライブラリ:PyGtk(2.16.1、Ubuntu付属)、LittleCMS(1.18、Ubuntu付属)
  • その他:LittleCMSのpythonバインディング(python-liblcms、1.18)

PyGtkおよびLittleCMSはUbuntuに付属のパッケージを使っています。pycairo,pygobjなど関連するライブラリももちろん必要です(上記のUbuntuなら入っていると思います)。

なお、LittleCMSのpythonバインディングパッケージが、Ubuntu以外でないと思われるので、他のOSでの動作は困難と予想しています(未確認です)。

 

LittleCMSについて

このプラグインは、sRGB以外にもCIEL*a*b*の色空間でも距離を求めるようにしています。そのための色空間の変換に、LittleCMSライブラリを使用しました。LittleCMSは、Linuxなどで色管理に使われているCMM, Color Management Module です。Gimpも使っているようです(パッケージの依存関係から推測しました)。ライブラリそのもののAPIはCであるため、今回はプラグインの書きやすさを考えて、このライブラリのpythonバインディングを利用しました。

Ubuntuの場合は、このpythonバインディングはパッケージとして提供されており、Synapticパッケージマネージャから python-liblcms を選択してインストールすれば使えるようになります。

他のLinuxディストリビューションの場合、同じAPIを持つpythonバインディングがあるかどうか確認できていません。ちょっとインターネットで検索してみると、複数のLittleCMSのpythonバインディングが見つかったのですが、上記のUbuntuのパッケージのものとは異なると思われるので、多分これらを使っても動かないのではないかと推測しています(未確認です)。また、Windowsの場合も同様の事情でpythonバインディングの問題があります(LittleCMSそのものはWindowsでも使えます)。

なお、Ubuntuのpython-liblcmsはDebianのパッケージを元に、SWIGにより作成されたようです。

 

(参考サイト)

LittleCMS