2021/07/06(火) [n年前の日記]
#1 [cg_tools][prog][gimp] パレットファイルの変換ツールを試用
画像編集ソフトで使うパレットファイルの変換ツールについて、探したり、試用したりしていた。とメモ。
パレットファイルの種類は色々あるけど、自分が主に使ってるのは以下の2つ。
GIMPのパレットファイル(.gpl)はテキストファイルなので、エディタで開いて編集すれば作成・変更できる。また、GIMP以外、例えば Inkscape でも使えたりする。
Photoshopのスウォッチファイル(.aco)は、読み込みに対応している画像編集ソフトが多い。例えば GIMP や CLIP STUDIO PAINT も .aco をインポートできるし、 先日試用した AzPainter も .aco をインポートすることができる。つまり、何かしらの画像編集ソフトにパレットデータを持ち込みたい場合、.aco を使えば目的が果たせることが多い。
ただ、.aco はバイナリファイルなので、基本的にはPhotoshopの類を持ってないと作成することができない…。
.gpl から .aco に変換できればいいのにな、ということで、変換ツールを探してみたわけで。
パレットファイルの種類は色々あるけど、自分が主に使ってるのは以下の2つ。
- .gplファイル : GIMPのパレットファイル。テキストファイル。
- .acoファイル : Photoshopのスウォッチファイル(色見本ファイル)。バイナリファイル。
GIMPのパレットファイル(.gpl)はテキストファイルなので、エディタで開いて編集すれば作成・変更できる。また、GIMP以外、例えば Inkscape でも使えたりする。
Photoshopのスウォッチファイル(.aco)は、読み込みに対応している画像編集ソフトが多い。例えば GIMP や CLIP STUDIO PAINT も .aco をインポートできるし、 先日試用した AzPainter も .aco をインポートすることができる。つまり、何かしらの画像編集ソフトにパレットデータを持ち込みたい場合、.aco を使えば目的が果たせることが多い。
ただ、.aco はバイナリファイルなので、基本的にはPhotoshopの類を持ってないと作成することができない…。
.gpl から .aco に変換できればいいのにな、ということで、変換ツールを探してみたわけで。
◎ Cyotek Color Palette Editorを試用。 :
Windows環境の場合は、Cyotek Color Palette Editor というツールを利用することができる。
_Cyotek Color Palette Editor - Color palette editing made easy - Cyotek
_mieki256's diary - Photoshopのスウォッチファイル aco を GIMPのパレットファイル gpl に変換したい
Windows10 x64 20H2上で、Cyotek Color Palette Editor 1.7.0.411 を使ってみたけど、.gpl を開いて .aco でエクスポートすることができた。Windowsユーザなら、このツールを使わせてもらえば、話は終わる…。
_Cyotek Color Palette Editor - Color palette editing made easy - Cyotek
_mieki256's diary - Photoshopのスウォッチファイル aco を GIMPのパレットファイル gpl に変換したい
Windows10 x64 20H2上で、Cyotek Color Palette Editor 1.7.0.411 を使ってみたけど、.gpl を開いて .aco でエクスポートすることができた。Windowsユーザなら、このツールを使わせてもらえば、話は終わる…。
◎ SwatchBookerを試用。 :
パレットデータ管理ツールとして、SwatchBooker というものもある。
_olivierberten/SwatchBooker: Swatch book viewer/convertor/editor
_SwatchBooker
_SwatchBooker's PPA : “SwatchBooker” team
Python + PyQt で動作するツール。Windows10上では、lcmsなるライブラリのインストールができなくて、動作させることができなかった。
Linux上なら動かせるのかどうかが気になったので、Windows10 x64 20H2 + VMware Workstation Player 16.1.0 build-17198959 上で、以下のディストリを起動して試してみた。
Ubuntu Linux 20.04 LTS上では、なかなか厳しいことになった。
まず、SwatchBooker の PPAは存在するらしいけど、リポジトリに追加してみると、どこかのURLが404になって sudo apt update すら満足に動かせなくなる。PPAをリポジトリから削除するしかなかった。
github から git clone でDLしたものの…。
おそらくだけど、src/swatchbooker.pyw を実行すればいいのだろう…。
しかし、Ubuntu 20.04上では、Python 2.7用の PyQt5 パッケージが存在しておらず、当然インストールもできなくて手詰まりになった。なんでも、Ubuntu は Python 2 から Python3 に移行させるため、Python2用の各種パッケージを削除する方向で動いているらしい。
Python3用の PyQt5 なら apt でインストールできたものの、SwatchBooker が Python 2.7 を前提にして書かれているようで、エラーが出て動かなかった。ただ、Python3用に修正していけば、動きそうな気配は感じる…。
Debian Linux 10 buster上で試したところ、そちらは状況が違っていた。まず、Python 2.7用のPyQt5 (python-pyqt5) が用意されていた。よって、以下を打てば、必要なパッケージがインストールできる。
実行は以下。
これで一応ウインドウ表示はされた。また、.aco を読み込んだり、.gpl を読み込むこともできた。
しかし、利用者数が比較的多そうな Ubuntu上で利用できないというのは、ちょっとアレだなと…。
_olivierberten/SwatchBooker: Swatch book viewer/convertor/editor
_SwatchBooker
_SwatchBooker's PPA : “SwatchBooker” team
Python + PyQt で動作するツール。Windows10上では、lcmsなるライブラリのインストールができなくて、動作させることができなかった。
Linux上なら動かせるのかどうかが気になったので、Windows10 x64 20H2 + VMware Workstation Player 16.1.0 build-17198959 上で、以下のディストリを起動して試してみた。
- Ubuntu Linux 20.04 LTTS
- Debian Linux 10 buster
Ubuntu Linux 20.04 LTS上では、なかなか厳しいことになった。
まず、SwatchBooker の PPAは存在するらしいけど、リポジトリに追加してみると、どこかのURLが404になって sudo apt update すら満足に動かせなくなる。PPAをリポジトリから削除するしかなかった。
github から git clone でDLしたものの…。
git clone https://github.com/olivierberten/SwatchBooker.git
おそらくだけど、src/swatchbooker.pyw を実行すればいいのだろう…。
しかし、Ubuntu 20.04上では、Python 2.7用の PyQt5 パッケージが存在しておらず、当然インストールもできなくて手詰まりになった。なんでも、Ubuntu は Python 2 から Python3 に移行させるため、Python2用の各種パッケージを削除する方向で動いているらしい。
Python3用の PyQt5 なら apt でインストールできたものの、SwatchBooker が Python 2.7 を前提にして書かれているようで、エラーが出て動かなかった。ただ、Python3用に修正していけば、動きそうな気配は感じる…。
Debian Linux 10 buster上で試したところ、そちらは状況が違っていた。まず、Python 2.7用のPyQt5 (python-pyqt5) が用意されていた。よって、以下を打てば、必要なパッケージがインストールできる。
sudo apt install python-pyqt5 python-pil liblcms-dev
$ python --version Python 2.7.16
実行は以下。
cd SwatchBooker cd src python swatchbooker.pyw
これで一応ウインドウ表示はされた。また、.aco を読み込んだり、.gpl を読み込むこともできた。
しかし、利用者数が比較的多そうな Ubuntu上で利用できないというのは、ちょっとアレだなと…。
◎ gplファイルについて注意。 :
当初、SwatchBooker で .gpl を読み込もうとしたらエラーが出てしまって悩んだのだけど。.gpl の最後に改行が入ってしまっていたのが原因だった。もしかすると .gpl のフォーマットとしては、最後に改行は入らない、という仕様なのかもしれないなと…。
具体的には、以下はダメ。
以下なら読める。
具体的には、以下はダメ。
GIMP Palette ... 220 245 255 [EOF]
以下なら読める。
GIMP Palette ... 220 245 255[EOF]
◎ aco2gplがあるらしい。 :
ググっていたら、.aco を .gpl に変換できる、aco2gpl というプログラムがあると知った。C言語で書かれていて、コンパイルが必要。
_baskerville/aco2gpl: Converts a Photoshop palette to a GIMP palette
元々は、.aco を .html にする、aco2html を改造して作ったツールらしい。
_mindscratch/aco2html: http://www.hping.org/aco2html/
Windows10 x64 20H2上で、MinGW/MSYS を使ってコンパイルしてみた。
_DB32パレットファイル を渡して動作確認してみる。
出力結果を .gplファイルとして保存する。
ちなみに、ソースを眺めた感じでは、色名にASCII文字以外(UTF-16?)を使ってる場合、色名を読み飛ばす模様。でもまあ、RGB値が取り出せるだけでもありがたい。
ただ、考えてみたら、GIMP を起動して .aco をインポートすることでも、.aco から .gpl への変換はできるのだよな…。逆は ―― .gpl から .aco への変換は無理だけど…。
_baskerville/aco2gpl: Converts a Photoshop palette to a GIMP palette
元々は、.aco を .html にする、aco2html を改造して作ったツールらしい。
_mindscratch/aco2html: http://www.hping.org/aco2html/
Windows10 x64 20H2上で、MinGW/MSYS を使ってコンパイルしてみた。
> gcc --version gcc (MinGW.org GCC Build-2) 9.2.0 Copyright (C) 2019 Free Software Foundation, Inc. ... > make --version GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. ... This program built for i686-pc-msys
git clone https://github.com/baskerville/aco2gpl.git cd aco2gpl makeaco2gpl.exe が出来上がった。
_DB32パレットファイル を渡して動作確認してみる。
aco2gpl.exe < db32.aco
> aco2gpl.exe < db32.aco reading ACO stream version: 1 (photoshop < 7.0) 32 colors in this file reading ACO stream version: 2 (photoshop >= 7.0) 32 colors in this file Generating GPL... GIMP Palette Name: Untitled Columns: 16 # 0 0 0 Black 34 32 52 Valhalla 69 40 60 Loulou ....gplらしいフォーマットでテキストが出力された。
出力結果を .gplファイルとして保存する。
aco2gpl.exe < db32.aco > db32.gpl.gpl が得られた。イイ感じ。
ちなみに、ソースを眺めた感じでは、色名にASCII文字以外(UTF-16?)を使ってる場合、色名を読み飛ばす模様。でもまあ、RGB値が取り出せるだけでもありがたい。
ただ、考えてみたら、GIMP を起動して .aco をインポートすることでも、.aco から .gpl への変換はできるのだよな…。逆は ―― .gpl から .aco への変換は無理だけど…。
◎ acoのフォーマット仕様について。 :
.aco のバイナリフォーマットについてググってみたら、そこそこ公開されているようで。
_Adobe Photoshop Color File Format
_Adobe Photoshop File Formats Specification
ちゃんと読めば、gpl2aco も作れそうではあるなと…。
_Adobe Photoshop Color File Format
_Adobe Photoshop File Formats Specification
- バージョン1と2がある。Photoshop 7.0未満と 7.0以後でバージョンが異なる。
- バージョン2はバージョン1の後ろに結合する形で格納してある。
- 2バイトのビッグエンディアンで各値を格納してある。
- RGB以外にも、HSV等、異なる色データの持ち方をする可能性がある。
ちゃんと読めば、gpl2aco も作れそうではあるなと…。
◎ gplのフォーマット仕様について。 :
GIMPパレットファイル(.gpl)のフォーマットについては、以下が参考になりそう。
_GIMP palette file (.gpl) format / syntax? - Stack Overflow
_gimppalette-load.c
ソース内の gimp_palette_load() を読めば一目瞭然に見える。例えば、RGB各値の区切り文字は、空白、もしくはタブ文字で扱ってることも、ソースを眺めれば分かる。
ていうか、本家のソースでは空行を無視する処理になってるな…。SwatchBooker の .gpl読み込み処理は間違ってるじゃん…。
_GIMP palette file (.gpl) format / syntax? - Stack Overflow
_gimppalette-load.c
ソース内の gimp_palette_load() を読めば一目瞭然に見える。例えば、RGB各値の区切り文字は、空白、もしくはタブ文字で扱ってることも、ソースを眺めれば分かる。
ていうか、本家のソースでは空行を無視する処理になってるな…。SwatchBooker の .gpl読み込み処理は間違ってるじゃん…。
◎ acoを書き出せるソフトについて。 :
調べてみたら、CLIP STUDIO PAINTは .aco を書き出せる模様。書き出した .aco を Cyotek Color Palette Editor で読み込んだらそれらしい表示も得られた。
もしかすると、他にも .aco で書き出せる画像編集ソフトがあるのかもしれない。
パレット編集に強いドットエディタ EDGE2 を確認したところ、.aco ではなく .act で保存できるようで。これはインデックスカラーテーブルのファイルらしい。EDGE2は元々フルカラードットエディタではないので、そういうファイルフォーマットになったのだろう…。たぶん。
もしかすると、他にも .aco で書き出せる画像編集ソフトがあるのかもしれない。
パレット編集に強いドットエディタ EDGE2 を確認したところ、.aco ではなく .act で保存できるようで。これはインデックスカラーテーブルのファイルらしい。EDGE2は元々フルカラードットエディタではないので、そういうファイルフォーマットになったのだろう…。たぶん。
[ ツッコむ ]
以上、1 日分です。