ZeroTool Workbench

画像カラーパレット抽出

任意の画像から主要色を抽出するブラウザツール。k-means で HEX / RGB / HSL / OKLCH と CSS 変数・Tailwind 設定を生成。アップロード不要、ログイン不要。

100% クライアントサイド データはブラウザ外に出ません 無料 · 登録不要

画像をここにドロップ、クリックで選択、またはペースト (Ctrl+V)

JPG · PNG · WebP · GIF · SVG · BMP

完全ブラウザ完結 — 画像はデバイスから出ません

このツールの役割

UI モックアップ、ブランド素材、商品写真、ストック画像 — 任意の画像をドロップすると、CSS、デザイントークン、Tailwind テーマにそのまま貼り付けられるパレットが返ります。可視ピクセルを k-means でクラスタリングし、各クラスタを 1 枚のスウォッチとして提示。占有率、HEX、RGB、HSL、そして OKLCH の 5 つの読み出しが揃います。

使い方

  1. アップロードカードに画像をドロップする、カードをクリックして選択する、もしくは画像をコピーした状態で Ctrl + V を押してペーストします。
  2. コントロールを調整:抽出する色数 (3〜16)、ソート (頻度 / 色相 / 明度)、フィルター (透明ピクセルを除外 / 白に近い色を除外)。
  3. スウォッチ上部をクリックすると HEX をコピー。下の RGB / HSL / OKLCH 行をクリックすればその表記をコピー。
  4. 一括コピー:CSS 変数をコピー:root { --color-1: …; } ブロック、JSON をコピー{hex, rgb, weight} 配列、Tailwind をコピーtheme.extend.colors.palette スニペットが取得できます。

アルゴリズム

k-means はシンプルですがデザイナー向けパレットを生成するのに十分な手法です。画像は最長辺 200 ピクセルにダウンサンプリング。4K 写真であれば約 4 万サンプルピクセルになり、最近のラップトップで 100 ミリ秒以内に安定したセントロイドへ収束します。各ピクセルは二乗 RGB 距離が最小のセントロイドに割り当てられ、セントロイドはクラスタの平均で更新、24 回反復するか移動量が閾値を下回るまで繰り返します。

2 つの実用的な調整を加えています。1) ΔRGB < 6 のクラスタ同士は統合し、見た目が同じスウォッチが並ばないようにする。2) オプションのプリフィルタで透明ピクセルや白に近いピクセル (輝度 > 0.95) を除外し、被写体ではなく余白に引っ張られないようにする。

出力フォーマット

  • HEX — 汎用フォーマット。スウォッチ上部をクリックでコピー。
  • RGB — モダンなスペース区切り構文 rgb(160 90 44)。すべての現行ブラウザに対応。
  • HSL — 色相 / 彩度 / 明度を素早く微調整したいときに便利。
  • OKLCH — 知覚均等で、デザイントークンや色相を回転させるカラーパイプライン向け。HSL のような明度ジャンプが起きにくい。
  • 占有率 — 各クラスタが原画像で占めるピクセルの割合。最大値はブランドのアクセント、それ以外は補助色として扱うのがおすすめ。

想定シナリオ

  • クライアントから受け取った既存ブランド素材から主要色を逆算してデザインシステムを再構築する。
  • 写真作品集や EC 商品ページで、メインビジュアルから派生した CSS トークンを生成する。
  • 競合分析時、自社プロダクトと競合の LP の色構成比を並べて違いを把握する。
  • 記事のアイキャッチを決めた後、見出し・引用ブロックの色を画像のパレットに合わせて選ぶ。

プライバシー

すべての処理はクライアント側で行われます。画像は HTMLImageElement にデコードされ、隠し Canvas に縮小描画され、JavaScript で k-means が走るのみ。サーバーに送信されるバイトは一切ありません。確認したい場合はネットワークパネルを開いてください。新しい画像をロードするたびに、クリーンなログが表示されるはずです。

関連ツール

FAQ

どうやって主要色を抽出していますか?

ダウンサンプリングしたピクセルの RGB 値に対する k-means クラスタリングです。画像は最長辺 200 ピクセルにリサイズされ、可視ピクセルがユークリッド RGB 距離で k 個のセントロイドに分類され、各セントロイドの平均色と画像内での占有率を返します。

画像はサーバーに送信されますか?

いいえ。画像はブラウザの FileReader と Canvas でデコードされ、クラスタリングはすべて端末上の JavaScript で完結します。DevTools のネットワークパネルを開けば、ツールのページ自体以外のアップロードリクエストが一切ないことを確認できます。

どんな画像形式に対応していますか?

ブラウザが `<img>` 要素と Canvas でデコードできるすべての形式に対応:JPEG / PNG / WebP / GIF / SVG / BMP に加え、Chromium 系の AVIF と Safari の HEIC。カメラの RAW 形式はブラウザでデコードできないため、先にローカルで JPEG / PNG に変換してください。

実行するたびにパレットが変わるのはなぜですか?

k-means は初期セントロイドをランダムに選びます。色数が多い画像で `k` が小さいと、2 回の実行でわずかに異なるクラスタに収束することがあります。「再抽出」で別のシードを試すか、`k` を大きくしてセントロイドを増やすと結果が安定します。