画像カラーパレット抽出 - HEX、RGB、HSLを取得

あらゆる画像から主要な色を抽出し、HEX、RGB、HSLで取得。各スウォッチにWCAG準拠の安全なテキスト色を表示。すべてブラウザ上で動作します。

カラーパレット抽出ツールの機能

このツールは「この画像を少数の色で表現するならどれか」という問いに正確に答えます。ブラウザ上で画像をデコードし、長辺が約200ピクセルになるよう縮小した後、Canvasから生のピクセルデータを読み取ります。ダウンスケールは精度を犠牲にする手抜きではなく、縮小時に隣接ピクセルを平均化することで、JPEGのリンギングノイズやセンサーノイズ(本来ならほぼ同じ黒が大量に抽出される原因)を除去し、ピクセル総数を約4万に抑え、スマートフォンでも瞬時に処理を完了させます。アルファ値128未満のピクセルは、他の処理に先立ちすべて破棄されます。この一手順により、透明背景のロゴで主要色が黒と判定される事態を防ぎます。これは他の抽出ツールが最もよく犯す誤りです。残った不透明ピクセルはMedian Cut法でグループ化されます。Median Cutは、ピクセルを3次元のRGB空間内の点群とみなし、それらを囲む箱を、色の広がりが最も大きく、かつ含まれるピクセル数が多い箱から順に、実際に色の値が変化する位置で二分割することを繰り返します。この処理を指定した色数に達するまで続けることで、画像の実際の構造に従ったクラスタが得られ、各クラスタは恣意的なバケットの中心ではなく、内部ピクセルの平均色を報告します。これが、固定グリッド方式で生じるくすんだ灰色ではなく、画像に実在する色が結果として得られる理由です。その後、並び順が調整されます。単純なピクセル数だけでのランク付けは問題を孕みます。写真では空や白いスタジオ背景が面積の40%を占めることも多く、純粋なカウントではそうした色が先頭に立ち、本当に求めている色が埋もれてしまうのです。そのため、ほぼ無彩色、ほぼ黒、ほぼ白に近いクラスタはソート時の重みを下げています。ただし、これらが除外されることはなく、各スウォッチの横に表示されるパーセンテージは、常に重み付けなしの真のピクセル占有率です。最後に、各スウォッチはWCAG 2.1の相対輝度に基づき、その特定の色に対してコントラスト比がより高い黒または白をテキスト色として取得します。このテストではHSLの「明度」ではなく「輝度」を用いるため、単純な明度閾値では誤判定される中間調でも正しい結果が得られます。

画像からパレットを抽出する理由

デザインワークは多くの場合、写真、スクリーンショット、ムードボード、誰かがメールで送ってきたロゴなど、視覚的なものから始まり、コードに入力する値で終わります。このツールは、デザインツールを往復することなく、そのギャップを埋めます。

ヒーロー画像や製品写真、ブランドアセットから、CSSやTailwindに直接貼り付けられる値で、サイトやアプリのテーマを瞬時に構築できます
元のブランドファイルが見つからない場合でも、ロゴや古いスクリーンショットから正確なHEXコードを復元できます
各色に対応するアクセシブルなテキスト色があらかじめ提示されるため、その背景で白文字が読みにくいかどうかを推測する必要はありません
クライアントやチームメイトに、追加のインストールやデザインツールの起動なしで確認できるパレットPNGを渡せます

画像から色を抽出する方法

アカウント不要の4ステップで、画像はデバイス外に一切送信されず、ローカルのブラウザでデコード及び解析されます。

1

JPG、PNG、WebP、GIF、SVGをドロップすると、読み込み次第自動で抽出が開始されます

2

抽出する色数を選択します(ブランドセットには4色、情報量の多い写真には10色)

3

スウォッチ上のHEX、RGB、HSL値をクリックしてコピーするか、「全HEXをコピー」で全セットを一度に取得します

4

CSS変数スニペット、Tailwind設定ブロックとしてエクスポートするか、パレットをPNGとしてレンダリングしてダウンロードします

よくある質問

いいえ。Median Cut法を用いています。これはRGB空間でピクセルをクラスタリングし、最も広がりが大きく、最も密度の高いクラスタから繰り返し分割していき、指定された色数になるまで続けます。各スウォッチは実在するピクセルクラスタの平均なので、画像に真正に現れる色です。ランク付けは占有率に基づきますが、ほぼ灰色・ほぼ黒・ほぼ白のクラスタは重みが下げられ、大きな平坦な背景色によって本来のアクセントカラーが一覧から押し出されるのを防ぎます。スウォッチ上のパーセンテージ表示は、重み付けなしの真の占有率です。
多くの場合、画像の最大面積を占める色と、視覚的に注意を引く色は異なるためです。製品写真では白いホリゾンが60%を占める一方、中央の赤い被写体に視線が集中します。まさにこの理由から、このツールは無彩色を抑制しますが、その効果は意図的かつ穏健であり、本当にほぼ単色の画像ではその色が優勢になります。より多くのアクセントを拾いたい場合は、色数を8や10に増やすと、小さなクラスタが大きなクラスタに統合されず、独立したスウォッチを得られます。
はい、これが本ツールを使う主な利点の一つです。アルファ値が128未満のピクセルは、分析開始前にすべて破棄されます。この手順なしに透明PNGをCanvasに描画すると、完全に透明なピクセルのRGB値はゼロになり、このチェックを省いたツールはほぼ全てのロゴで黒を主要色として報告します。画像全体が完全に透明な場合はサンプル対象が存在せず、黒一色のパレットではなく明確なメッセージが表示されます。
対象スウォッチに対してWCAG 2.1のコントラスト比がより高い、黒または白です。sRGBのガンマ曲線を用いて色を相対輝度に変換し、標準的な (L1 + 0.05) / (L2 + 0.05) の式を適用します。この計算の分岐点は輝度約0.179にあり、これは「明度50%」には対応しません。#767676のような色はHSLの明度では白文字に適した暗さに見えますが、実際には黒文字のほうが高いスコアになります。各スウォッチは推奨された色で自身のラベルをレンダリングするため、目に映るものが実際の結果です。
4色はロゴやフラットなイラスト、タイトなブランドセットに絞り込みたいものに適しています。6色はほとんどの写真に適したデフォルトで、プライマリ、セカンダリ、そしてUI構築に十分な補助トーンが得られます。8~10色は、複雑なシーンやグラデーション、アートワークなど、情報量の多い画像向けで、追加のスロットによって、そうでなければ隣接色に平均化されてしまうアクセントを拾い上げます。色数を変更すると、単にリストを切り詰めるのではなく抽出全体が再実行されるため、6色の結果は10色の結果の単なる先頭6色ではありません。
CSSファイルは:rootブロックで、画面上と同じ順序で --color-1 から --color-n までのカスタムプロパティと、最初の色のエイリアスである --color-dominant を含みます。各行の末尾にはコメントで占有率が付記され、その色がどれほど支配的だったかがわかります。Tailwindファイルは設定スニペットで、色が theme.extend.colors.palette 以下にネストされ、自身の設定にマージすれば bg-palette-1 や text-palette-3 といったクラスが利用可能になります。どちらも開いて編集できるプレーンテキストファイルです。
ありません。ファイルはお使いのブラウザでデコードされ、メモリ上のCanvasに描画された後、ピクセルデータとして読み戻されます。画像データ、パレット、ファイル名のいずれもサーバーに送信されることはなく、機密性の高いモックアップ、未公開の製品写真、クライアントのアートワークはお使いのマシン上に留まります。また、ページ読み込み後にオフラインになってもツールは動作し続け、デバイスのメモリが許す限りでアップロードサイズの上限はありません。
お使いのブラウザがデコード可能なものすべてで、具体的にはJPG、PNG、WebP、GIF、SVGです。アニメーションGIFは最初のフレームからサンプリングされます。SVGファイルはブラウザがラスタライズするためのサイズが必要なため、固有の寸法が宣言されている場合に動作します。非常に大きな写真でも問題ありません。サンプリング前に縮小されるため、横幅6000ピクセルのRAW現像出力でもサムネイルと解析時間は変わりません。

その他の画像ツール

画像編集のニーズに応える他の強力なツールをご覧ください