正確な色の一覧と、抽出したパレットは別物
ラボの抽出は色を減らす処理です。まずピクセルをチャンネルあたり5ビット(256段階ではなく32段階)の箱にアルファで重み付けして集め、その箱をOklabでメディアンカットします。すべてのチャンネルで差が8段階未満の2色は同じ箱に入り、平均した1色として出てきます。ノイズのある画像やサイズを変えた画像には望ましい動きですが、手で打ったドット絵の色をそのまま知りたいときには向きません。
そのままの一覧が必要なら、Studioのピクセル作業画面で「絵からパレットを作る」を使います。正確な色をすべて(透明の枠のほかに最大255色)集め、使用量の多い順に並べます。一方ラボの数値は、ラボのパレットに対しては正確です。すべてのピクセルをOklabで最も近いパレット色へ割り当て(完全一致はそのまま)、フレームの合計が4メガピクセル未満なら全フレームを数えます。
色数の予算は、数値を判断に変えてくれます。目標を決めると、目標を超える最も少ない色が並び、統合は各色をOklabで最も近い残る色へ移します。一緒に消える色どうしは統合しないので、結果は本当に目標の色数だけを使います。
- 色数の予算
- スプライトやフレーム1枚が使ってよい最大の色数。
- 5ビットの箱
- 赤・緑・青の上位5ビット(各32段階)が一致する色のまとまり。
- 割合
- ある色のピクセル数を不透明ピクセル全体で割った値。
- .gpl
- GIMPのテキストパレット。「GIMP Palette」のヘッダー、任意のNameとColumns、その後に色ごとの「R G B 名前」の行。
例:2つの緑が1つになる理由と、16色から8色への予算
箱の計算と、ラボの検証で使った予算のテストです。
#3e8948 = (62,137,72) → 箱 62>>3=7、137>>3=17、72>>3=9
#3f8a4a = (63,138,74) → 箱 63>>3=7、138>>3=17、74>>3=9 同じ箱
抽出結果:2色をピクセル数で重み付け平均した1色
正確な一覧(Studio、絵からパレットを作る):2色とも、使用量順
予算:16色、目標8 → 最も少ない8色が並ぶ
統合:それぞれOklabで最も近い残る色へ
書き出し:フレームは実際に8色だけ、パレット外0
2つの緑をわざと塗り分けたならStudioで数え、リサイズや圧縮でできた色なら統合後の色を残してください。
ラボが書き出すパレットファイル
| ファイル | 用途 |
|---|
palette.gpl | GIMPパレットのテキスト:Name:、Columns:、その後にR G Bと色名としてのhexコード。GIMPとAsepriteで開けます。 |
|---|
palette.hex | 1行に#rrggbbを1つ。Lospecも配布している素朴な一覧。 |
|---|
palette.json | name、#rrggbb形式のcolors、[r,g,b]形式のrgb、count、source。 |
|---|
抽出したパレットを確認する
- 色数をStudioの正確な一覧と比べます。差が大きければ、画像にノイズがあるかリサイズされています。
- 頻度順に並べます。割合が0 %近い色は、予算の統合か孤立ピクセルの整理の候補です。
- 書き出したファイルを読み込み直します(貼り付けかファイル)。同じ色数が戻るはずです。
- 統合後にフレームを書き出し、別のツールで色を数えます。目標と一致するはずです。
トラブルシューティング
| 症状 | 考えられる原因 | 確認方法 | 対処 |
|---|
| 分けておきたい2色がまとめられた | 同じ5ビットの箱に入る(チャンネルごとの差が8段階未満) | Studioのピクセル作業画面の「絵からパレットを作る」と比べる | Studioの正確な一覧を使うか、2色の差を広げる |
|---|
| 32色を指定したのに少なく出た | 画像の異なる箱が指定より少ない。1色より細かくは分けられない | パレットの見本が指定数より少ない | 問題なし。画像がその色数しか使っていない |
|---|
| パレットファイルを読み込めない | ラボが読むのはGIMPの.gpl、HEXリスト、JSONだけ。JASCの.pal、AARRGGBBのPaint.net .txt、Asepriteの「Channels: RGBA」行がある.gplは拒否される | エラーが読めなかった行を示す | .gplか.hex版をダウンロードするか、より多くの形式を読むStudioのピクセル作業画面で読み込む |
|---|
| 数値が表示中のフレームだけ | 全フレームの合計が4メガピクセルを超えている | 数値の横のパネルにその旨が出る | 正確な合計が必要ならフレームを減らして読み込む |
|---|
ほかの方法
| 方法 | こんなときに向いています |
|---|
| Studioのピクセル作業画面:絵からパレットを作る | 手描きの絵の色をそのまま知りたいとき、または.gpl・.hex・.json以外の形式(.pal、.ase、.act)が必要なとき。パレットエディタを参照。 |
|---|
| 公開パレットから始める | スプライト固有の色ではなく、知られたパレットに従わせたいならLospecパレット。 |
|---|
| 抽出の前に倍率とぼけを確認 | 拡大画像かもしれないなら、ぼやけた拡大画像の色数は等倍に戻すまで意味がありません。ピクセルパーフェクトチェッカーを参照。 |
|---|
この方法の限界
- 抽出はチャンネルあたり8段階より近い色をまとめるので、正確な一覧ではありません。
- 読み書きできるのは.gpl、HEX、JSONだけです。
- 正確な数値は全フレーム面積4メガピクセルまでです。
バージョンと出典
Nerulio:docs/PIXEL-LAB.md(Chromium。16色から8色への統合結果を書き出したPNGで数え直し、.gpl・.hex・JSONの往復は16色 → 16色)。箱の計算はsrc/pixel-engine.jsに従います。ファイルの構造はGIMPの仕様と、Lospecが実際に配布するファイルに基づきます。
参照した公式ドキュメント
パレット抽出
複数の画像から1つのパレットを抽出し、.gpl・HEX・JSONで保存。
使い方
- 画像を追加
- 設定を調整して結果を確認
- 新しいファイルを保存
対応形式
PNG / JPG / WebP / AVIF / HEIC → PNG + JSON (ZIP) — 入力のデコードはブラウザ対応と追加エンジンに依存します。
このツールでできること
複数の画像から4・8・16・32・64色をまとめて抽出し、.gpl・HEX・JSONで保存。
処理方式と検証状況
advanced · shared alpha-weighted histogram / Oklab median cut + Lloyd / .gpl, HEX and JSON round trip. 品質検証中です。Pro・Flagship水準はまだ実証されていません。
書き出す前に
色はチャンネルあたり5ビットでまとめて数えるため、1〜2ピクセルだけの色は近い色に統合されることがあります。
よくある質問
このツールにはどのような制限がありますか?
色はチャンネルあたり5ビットでまとめて数えるため、1〜2ピクセルだけの色は近い色に統合されることがあります。
ファイルはアップロードされますか?
このツールで開いたファイルはアップロードせず端末で処理します。コミュニティの投稿に明示的に添付する画像は別途アップロードされます。一部のエンジンやモデルは外部から取得するため、IPアドレスなどの接続情報は配信元に伝わります。
作業は自動保存されますか?
いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。