画像からカラーパレット抽出

画像から配色を抽出し、各色が画像に占める割合を表示。ベタ塗りの画像は元の色をそのまま取得し、同じ画像なら毎回同じ結果。HEX・RGB・HSL・OKLCH のコピー、CSS・Tailwind・GIMP .gpl・Adobe .ase の書き出しに対応。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
画像を開く、ドロップする、または貼り付けます。ブラウザがデコードできる JPEG、PNG、WebP、AVIF、GIF、SVG、BMP に対応します。HEIC は Safari が必要です。RAW は先に変換してください。Ctrl+L / ⌘L で画像とパレットを消去し、設定は保持します。 現在の画像をローカルで描く夕日のイラストに置き換え、現在の設定で色を抽出します。

またはここに画像をドロップ、Ctrl+V / ⌘V で貼り付け。JPEG・PNG・WebP・AVIF・GIF・SVG・BMP に対応。または画像を貼り付け

2〜16 色を選ぶと自動で抽出します。色グループが少ない場合や似たクラスタが統合された場合は、表示色が減ります。262,144 画素を超える画像は間引いて読みます。
オプション
割合、色相、明度の順にカード、プレビューの番号、書き出すパレットを並べます。抽出したクラスタ自体は変わりません。 「最も多い色合い」は、1 色が色グループ(各チャンネル 32 段階、1 段階は 256 値のうち 8 値)の半分を超えるときに元の色を使い、それ以外はグループ平均を使います。「クラスタの平均色」は重み付き OKLab 平均です。
鮮やかなアクセントを優先すると色相と彩度の差を 2 倍に数え、小さな鮮やかな部分もクラスタに残します。白や黒に近い画素を除外しても、割合の分母は見えている画像全体です。

書き出し
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

例:葛飾北斎「神奈川沖浪裏」

葛飾北斎「富嶽三十六景 神奈川沖浪裏」

メトロポリタン美術館の解説によると、「富嶽三十六景 神奈川沖浪裏」(1830〜32 年頃)を含む北斎の風景版画は、藍と輸入されたプルシアンブルーの配色で知られています。上の画像は同館所蔵品を撮影したパブリックドメイン画像(Wikimedia Commons)を幅 512 画素に縮小したものです。色数 5、最も多い色合いで抽出すると次のようになります。

  • #F4EAD4 37.6%(空と波頭の紙の色)
  • #F5E5C2 24.9%(黄ばんだ紙)
  • #244363 17.1%(波の濃い藍)
  • #D3DCCC 10.7%
  • #83837C 9.5%

画面の 6 割以上は紙の色です。白に近い色を除外をオンにすると画像の 20.1% が外れ、空いた枠に水色がかった #C4D4CB 7.9% が入ります。割合は画像全体に対する値のままなので、#244363 は 16.7% です。

和風の配色を Web サイトに使うなら、書き出しで Tailwind v4 を選びます。最初の結果は次の @theme ブロックになり、bg-palette-3 で藍色の背景が使えます。

@theme {
--color-palette-1: #F4EAD4; /* 37.6% */
--color-palette-2: #F5E5C2; /* 24.9% */
--color-palette-3: #244363; /* 17.1% */
--color-palette-4: #D3DCCC; /* 10.7% */
--color-palette-5: #83837C; /* 9.5% */
}

スウォッチを「クラスタの平均色」にすると、藍は #2C4A64 になります。最も多い色合いは、そのクラスタで最も多くの画素を占める色合いで、平均色は境目の淡い色も混ざった値です。ロゴや UI のスクリーンショットでは最も多い色合いが元の色そのものになり、絵や写真では平均色のほうが全体の印象に近くなります。

例:バナー画像の色を正確に取る

この 400 × 300 の PNG は、紺 #1E3A8A の背景、下 4 分の 1 の白っぽい帯 #F8FAFC、60 × 60 のオレンジの四角 #F97316 だけでできています。色数 6 のまま抽出すると #1E3A8A 72.0%、#F8FAFC 25.0%、#F97316 3.0% で、元の色と面積がそのまま出ます。見えている画素が 3 つの色グループにしかないため、6 色ではなく 3 色を表示した、とステータス行に出ます。

計算のしくみ

  • サンプリング:262,144 画素以下の画像はすべての画素を数えます。それより大きい画像は縮小して読みますが、平滑化はしないので、どのサンプルも元画像の実際の画素です。境目に元画像にない中間色が生まれません。
  • 色グループ:各チャンネル 32 段階(1 段階は 256 値のうち 8 値)、32,768 グループで数えます。Color Thief のメディアンカットと同じ 5 ビット精度です。画素は不透明度で重み付けします。
  • クラスタリング:OKLab で重み付き k-means を行います。OKLab の直線距離は見た目の色差に近い値です。初期値は決まった順番で選び、乱数は使いません。「鮮やかなアクセントを優先」がオンのときは色相と彩度の差を 2 倍に数え、面積の小さい鮮やかな色も 1 色として残します。
  • 統合:0.02 未満しか離れていないクラスタはまとめます。0.02 は CSS Color 4 の色域マッピングが使う「見分けられる最小の差」です。

.gpl は GIMP、Inkscape(パレットフォルダーに置く)、Krita で、.ase は Illustrator・Photoshop・InDesign のスウォッチとして使えます。

ほかの抽出ツールとの違い

2026 年 10 月 2 日に、上のバナーとゴッホ「星月夜」の画像で確認しました。

  • patto-tool.com の「画像からカラーパレット抽出」は、ページの説明によると画像を最大 10,000 画素に縮小し、k-means++ で色を選びます。バナーからは元画像にない紺と白の中間色 #8B9AC3 を返し、割合は表示しません。同じ「星月夜」を 2 回読み込むと、灰緑の色が #9AA795 と #A0AB93 で変わりました。
  • imageonline.io(日本語版)はバナーの 3 色を正確に返しますが、割合は表示しません。
  • ライブラリの node-vibrant 4.0.4 は「Vibrant」「Muted」など 6 つの役割で色を選び、5 ビットのグループから色を作り直すため、バナーの紺は #1C3C8C になります。

どのページも、画像を開いたあとに画像を送るネットワーク要求は出しませんでした(ブラウザのリソースタイミングで確認)。

制限

  • 262,144 画素を超える画像は間引いて数えるため、数画素ほどの細部は拾えないことがあります。
  • 「最も多い色合い」が元の色と完全に一致するのは、1 つの色がその色グループの半分以上を占めるときです。そうでなければグループの平均色です。
  • sRGB の外にある色(Display P3 の写真など)は sRGB に切り詰めます。パレットの表示後、同じサンプル画素を Display P3 で読み直し、完全に不透明な画素のうち sRGB の外にある割合をステータス行に表示します。ブラウザが OffscreenCanvas に対応していれば、開いたファイルはバックグラウンドの Worker でデコードして調べるため、大きな写真の Display P3 への変換はページのスレッドで行いません(表示はパレットより数秒遅れることがあります)。サンプルのイラストと SVG ファイルはページ内で 16 行ずつ読みます。ブラウザが Display P3 で描画できない場合は、チェックできない旨をステータス行に表示します。
  • アニメーション GIF は最初のフレームだけを使います。HEIC は Safari でのみ開け、カメラの RAW は変換が必要です。

1 画素の色だけを調べるならスポイト カラーピッカー、色覚による見え方は色覚シミュレーター、文字の読みやすさはカラーコントラストチェッカーで確認できます。

FAQ

画像はアップロードされますか?

されません。画像はブラウザがデコードし、画素の集計とクラスタリングはこのタブの中の JavaScript で行います。ページが画像や色を送信することはありません。ブラウザに保存するのは設定(色数・並べ替え・スウォッチの色・フィルター・書き出し形式)だけで、画像とパレットは保存しません。

なぜ毎回同じパレットになるのですか?

クラスタリングに乱数を使っていないためです。最も重い色グループから始め、決まった順番で初期値を選び、同点は番号の小さい方を取ります。同じ画像・同じ設定なら、色も割合も毎回同じです。k-means の初期値を乱数で決める抽出ツールでは、やり直すたびに結果が変わります。

色ごとのパーセントは何を表していますか?

見えている画像のうち、その色のクラスタが占める割合です。画素は不透明度で重み付けし、完全に透明な画素は数えません。「白に近い色を除外」「黒に近い色を除外」で外した画素も分母には含めるので、そのときは合計が 100% 未満になり、除外した割合をステータス行に表示します。

指定した色数より少なく表示されるのはなぜですか?

画素を 32,768 個の色グループ(各チャンネル 32 段階、1 段階は 256 値のうち 8 値)に分けて数えています。見えている画素が指定した色数より少ないグループにしか入らない場合は、グループごとに 1 色となり、その旨をステータス行に表示します。また OKLab で 0.02 未満しか離れていないクラスタは同じ色に見えるため 1 つにまとめます。

.gpl と .ase はどのアプリで開けますか?

.gpl は GIMP のパレット形式で、GIMP・Inkscape・Krita が読み込めます。.ase は Adobe Swatch Exchange で、Illustrator・Photoshop・InDesign でスウォッチライブラリとして読み込めるほか、Krita と GIMP も読み込みに対応しています。どちらも画面の順に色を保存し、各色に HEX 値の名前を付けます。