mieki256's diary



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 に変換できればいいのにな、ということで、変換ツールを探してみたわけで。

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ユーザなら、このツールを使わせてもらえば、話は終わる…。

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 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 を使ってコンパイルしてみた。
> 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
make
aco2gpl.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

  • バージョン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読み込み処理は間違ってるじゃん…。

acoを書き出せるソフトについて。 :

調べてみたら、CLIP STUDIO PAINTは .aco を書き出せる模様。書き出した .aco を Cyotek Color Palette Editor で読み込んだらそれらしい表示も得られた。

もしかすると、他にも .aco で書き出せる画像編集ソフトがあるのかもしれない。

パレット編集に強いドットエディタ EDGE2 を確認したところ、.aco ではなく .act で保存できるようで。これはインデックスカラーテーブルのファイルらしい。EDGE2は元々フルカラードットエディタではないので、そういうファイルフォーマットになったのだろう…。たぶん。

以上、1 日分です。

過去ログ表示

Prev - 2021/07 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project