パレット抽出

複数の画像から1つのパレットを抽出し、.gpl・HEX・JSONで保存。

パレットの抽出は、スプライトが使っている色と、それぞれが何ピクセルを占めるかを示すので、うっかりできたほぼ同じ色を見つけ、色数の予算を守れます。画像1枚かアニメの全フレームをドロップすると、パレットの工程が全体で使うパレットを1つ作り(既定16色、2〜256)、色ごとの正確なピクセル数と割合を表示し、並べ替え、目標に合わせて最も少ない色を最も近い残りの色へ統合できます。GIMPの.gpl、HEXリスト、JSONで保存でき、何もアップロードしません。

画像をここにドロップ複数のファイルをまとめて処理できます
アップロードなし · この端末で処理

正確な色の一覧と、抽出したパレットは別物

ラボの抽出は色を減らす処理です。まずピクセルをチャンネルあたり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.gplGIMPパレットのテキスト:Name:、Columns:、その後にR G Bと色名としてのhexコード。GIMPとAsepriteで開けます。
palette.hex1行に#rrggbbを1つ。Lospecも配布している素朴な一覧。
palette.jsonname、#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で保存。

使い方

  1. 画像を追加
  2. 設定を調整して結果を確認
  3. 新しいファイルを保存

対応形式

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アドレスなどの接続情報は配信元に伝わります。

作業は自動保存されますか?

いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。