カラーピッカーツール - RGB、Hex、CMYK、HSVカラーコードの変換
このカラーピッカーは、RGB、16進数(Hex)、CMYK、HSVの4つの色形式の値を相互に変換する無料オンラインツール。カラースペクトルをクリックするか数値を直接入力して色を選び、Webデザイン、印刷物、デジタル制作で使う任意の形式のコードを1クリックでコピーできる。
カラーピッカー
RGB (0-255)
CMYK (0-100)
カラーピッカー
ドキュメンテーション
このカラーピッカーでできること
プロジェクトに最適な色合いが必要ですか?このカラーピッカーを使えば、RGB、Hex、CMYK、HSVフォーマット間で色を即座に選択、プレビュー、変換できます。ウェブサイトのコーディング、ロゴデザイン、印刷用ファイルの準備など、正確な色の値をすぐに見つけられます—推測や複数のツール間の切り替えは不要です。
カラースペクトラム上の任意の場所をクリックして色を選び、スライダーで明るさを調整するか、直接正確な値を入力できます。すべてのフォーマットがリアルタイムで更新され、1回のクリックで任意の色コードをコピーできます。
カラーモデルの理解
異なるプロジェクトには異なるカラーフォーマットが必要です。それぞれの特徴と使用場面は以下の通りです:
RGB(レッド、グリーン、ブルー)
RGBは、赤、緑、青の光を混ぜて色を作ります。現在、画面で表示されている色と同じ方法です。各成分は0から255の範囲で表されます:
- RGB(255, 0, 0) = 純粋な赤
- RGB(0, 255, 0) = 純粋な緑
- RGB(0, 0, 255) = 純粋な青
- RGB(255, 255, 255) = 白
- RGB(0, 0, 0) = 黒
RGBを使用する場面: ウェブサイト、モバイルアプリ、ビデオ編集、画面ベースのグラフィックなどのデジタル作業。ディスプレイのネイティブ言語であるため、CSSなどのツールがrgb()やrgba()関数を直接サポートしています。W3C CSSカラーモジュール仕様によると、RGBはウェブ標準の基本的なカラーモデルです。
16進数(Hex)
Hexコードは、RGBの値を10進数ではなく16進数で表したものです。Hexカラーは#FF5733のような形式で、以下のように構成されます:
#記号はHexコードであることを示します- 最初の2文字 = 赤(00-FF)
- 中央の2文字 = 緑(00-FF)
- 最後の2文字 = 青(00-FF)
#FF0000= 赤、#00FF00= 緑、#0000FF= 青
#FF0000の代わりに#F00のような3文字の省略形も使用できます。これは、各カラーチャネルが同じ数字を繰り返す場合に機能します。
Hexを使用する場面: ウェブ開発が主な用途です。CSSは常にHex表記をサポートしており、多くの開発者はrgb()よりも入力が速いと感じています。よくある落とし穴は、#記号を忘れると、ブラウザが色として認識しないため、スタイルが静かに壊れることです。
CMYK(シアン、マゼンタ、イエロー、キー/ブラック)
CMYKは、プリンターで使用されるカラーモデルです。RGBが光を追加するのとは異なり、CMYKは光を減算します。白い紙にインクを混ぜて色を作ります:
- 各成分は0%から100%の範囲
- CMYK(0, 100, 100, 0) = 赤
- CMYK(100, 0, 100, 0) = 緑
- CMYK(0, 0, 0, 100) = 純粋な黒インク
- CMYK(0, 0, 0, 0) = インクなし(白い紙が透けて見える)
CMYKを使用する場面: 名刺、パンフレット、雑誌、パッケージングなどの印刷物のデザイン。現実的な注意点として、多くの鮮やかなRGB色は、CMYKインクでは再現できません。画面上の明るい電気のような青は、印刷すると色が薄くなります。プロのデザイナーは、印刷に渡す前に必ずCMYKへの変換をプレビューして、予期せぬ結果を避けます。
HSV(色相、彩度、明度)
HSVは、色を3つの直感的な成分に分解します:
- 色相: どの色の系統か(0-360°)—0°は赤、120°は緑、240°は青
- 彩度: どれだけ鮮やかか、またはグレーか(0-100%)—0%はグレースケール、100%は完全に彩度が高い
- 明度: どれだけ明るいか、または暗いか(0-100%)—0%は黒、100%は最大の明るさ
HSVが重要な理由: 人間が自然に色について考える方法に一致しています。より暗い青が欲しい場合は、明度を下げます。青の強さを抑えたい場合は、彩度を下げます。これにより、HSVはこのようなカラーピッカーに最適です。スペクトル上で色相を選択し、スライダーで明るさを調整できます。
カラー変換の公式
カラーピッカーは、これらの数学的な公式を使用して、異なるカラーモデル間を自動的に変換します:
RGBからHexへの変換
RGBを16進数に変換するには:
- 各RGB成分(0-255)を2桁の16進数に変換
- 3つの16進数の値を#プレフィックスと連結
toHex()は10進数を16進数表現に変換します。
RGBからCMYKへの変換
RGBからCMYKへの変換は、以下の手順で行います:
- RGB値を0-1の範囲に正規化
- ブラックキー(K)成分を計算
- Kに基づいてC、M、Yを計算
RGBからHSVへの変換
RGBからHSVへの変換:
色相(H)の場合:
0° & \text{if } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{if } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{if } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{if } C_{max} = B' \end{cases}$$ 彩度(S)の場合: $$S = \begin{cases} 0 & \text{if } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{otherwise} \end{cases}$$ 明度(V)の場合: $$V = C_{max} \times 100\%$$ ## カラーピッカーの使い方 色を操作する3つの方法: スペクトルをクリック、正確な値を入力、またはスライダーで調整。ワークフローに合わせて最適な方法を選んでください。 ### 色を視覚的に選択 **カラースペクトル**の任意の場所をクリックして色合いを選択。水平方向の位置で色相(赤、緑、青など)を、垂直方向の位置で彩度(鮮やかな色と薄い色)を選択。プレビューがすぐに更新されるので、選択している色を正確に確認できます。 スペクトルの下にある**明るさスライダー**をドラッグして、色を明るくまたは暗くします。HSV用語で「値」コンポーネントを調整し、左に動かすと暗くなり、右に動かすと明るくなります。 ### 正確な色の値を入力 必要な色が分かっている場合は、直接入力できます: **16進数形式:** `#FF5733`のようなコードを入力。`#`を含めても省略しても構いません。3桁の省略形式(`#F37`)も使用可能です。 **RGB形式:** 赤、緑、青の値を0-255の範囲で入力。誤って300と入力した場合、自動的に255に調整されます。 **CMYK形式:** 各インクコンポーネントの割合(0-100)を入力。印刷デザイナーの仕様に色を合わせる場合に便利です。 すべての形式がリアルタイムで更新されます。16進数コードを変更すると、RGB/CMYKも自動的に調整されます。 ### カラーコードをコピー 任意の色形式の横にあるコピーボタン(クリップボードアイコン)をクリックします。短い「コピーしました!」の確認メッセージが表示され、CSSファイル、デザインソフト、ドキュメントなど、必要な場所に貼り付けられます。 **プロのヒント:** 複数のファイルやアプリケーション間で作業する場合、このツールをブラウザのタブで開いておくと、コンテキストを切り替えることなく、すばやく色の値を参照およびコピーできます。 ## 実世界のユースケース ### Web開発 ダークモードのトグルを作成し、色のバリエーションが必要な場合。まず、ブランドのプライマリカラーを16進数形式(例:`#3B82F6`)で開始し、明るさスライダーを使用して、背景用の暗い色(`#1E3A8A`)や、ホバー状態用の明るい色(`#60A5FA`)を生成します。各16進数コードをCSSカスタムプロパティに直接コピーします。 透明度を扱う場合、RGB値を取得し、`rgba()`関数で使用します。例えば、`rgb(59, 130, 246)`は、80%の不透明度のオーバーレイとして`rgba(59, 130, 246, 0.8)`になります。 一般的なシナリオ:クライアントがFigmaデザインでRGB色を指定しているが、CSSでは16進数コードを好む場合。手動で計算する代わりに、ここで変換します。 ### 印刷用グラフィックデザイン ここでCMYKが重要になります。画面上でRGB色で鮮やかなポスターをデザインした後、印刷前にCMYK値を確認します。選んだ電気的なシアン(RGB 0, 255, 255)はCMYK(100, 0, 0, 0)に変換され、問題ありません。しかし、明るい画面上の緑(RGB 0, 255, 0)は、印刷時に目に見える変化が生じる可能性があります。 プロフェッショナルなワークフロー:画面上の色をここに入力し、CMYK変換を確認し、デザインソフトのCMYKプレビューモードで視覚的に比較します。色の変化が大きすぎる場合は、デザインを確定する前に選択を調整します。これにより、「画面上では違って見えました」という会話を印刷所と避けることができます。 ### UI/UXデザインシステム デザインシステムを構築するには、一貫性のある色のスケールが必要です。プライマリカラーから開始し、異なるUIの状態用に5〜10の明るさのバリエーションを作成します。明るさスライダーにより、これを迅速に行えます。頭の中で計算する必要はありません。 アクセシビリティのために、テキストと背景の間に十分なコントラストが必要です。このツールはコントラスト比を計算しませんが(そのためには専用の[WCAGコントラストチェッカー](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)が必要)、異なる色合いをすばやくテストし、機能する組み合わせを見つけるのに役立ちます。 実際のシナリオ:プライマリボタンが`#2563EB`を使用していますが、その背景上のテキストはコントラスト要件を満たしていません。背景を明るくするか、テキストを暗くする—プレビューを使用して、オプションをすぐにテストします。 ### デジタルアートとイラストレーション デジタル絵画に取り組んでいて、一貫性のある色の調和が必要な場合。スペクトル上の基本色を選び、彩度と明るさのみを調整して、バリエーションを作成します。これにより、ランダムな色の変化なしにパレットを一貫させることができます。 多くのデジタルアーティストは、描画中に参照色をすばやく取得して変換するために、カラーピッカーを開いたままにしています。参照写真で完璧な影の色を見つけたら、ここでクリックし(他の場所で値を抽出した場合)、RGBを取得し、Photoshop、Procreate、またはKritaに貼り付けます。 ### 色の教育と実験 色モデルがどのように関連しているかを理解したい場合。任意の色を選び、RGB、16進数、CMYK、HSVの値がどのように変化するかを確認します。純粋な赤(RGB 255, 0, 0)が`#FF0000`に等しいことに注意し、その一方でCMYK換算は0, 100, 100, 0—まったく異なる数値が同じ知覚される色を表しています。 このビジュアルフィードバックは、RGBが加法混色(光の組み合わせ)を使用し、CMYKが減法混色(インクの組み合わせ)を使用する理由を学生が理解するのに役立ちます。対話型のアプローチにより、抽象的な概念を具体的にすることができます。 ## 他のカラーツール このツールは個々の色の選択と変換に焦点を当てています。プロジェクトによっては、以下のツールも必要になるかもしれません: **パレットジェネレーター**(Adobe Color、Coolors)は、色彩理論に基づいて、補色、三色配色、または類似色配色など、調和のとれた複数の色が必要な場合に役立ちます。 **ブラウザ拡張機能**(ColorZilla、Eye Dropper)は、任意のウェブページや画面要素から直接色を抽出できます。既存のデザインに合わせる際に便利です。 **コントラストチェッカー**はアクセシビリティ作業に役立ちます。[WebAIM コントラストチェッカー](https://webaim.org/resources/contrastchecker/)は、テキストと背景の組み合わせがWCAG基準を満たしているかをテストします。 **Pantone/RALシステム**は、異なる印刷店や素材間で正確な印刷色のマッチングを行うために使用されます。これらの物理的な見本帳は、デジタルツールでは正確に再現できない標準化された参照を提供します。 ## カラーのアクセシビリティを高める 男性の約8%と女性の0.5%が何らかの色覚障害を持っています。インクルーシブにデザインするためのヒントは以下の通りです: **色だけで意味を伝えない** ようにしましょう。フォームでエラーを赤色で示す場合は、アイコンやテキストラベルも追加してください。異なる色の線のあるグラフの場合は、パターンやラベル、またはその両方を追加します。 **コントラスト比をチェック** するには、[WebAIM コントラストチェッカー](https://webaim.org/resources/contrastchecker/)のようなツールを使用します。通常のテキストは背景に対して最低4.5:1の比率が必要で、大きなテキストは3:1が必要です。[WCAG 2.1ガイドライン](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)によれば、これにより中程度の視力低下のあるユーザーの可読性が確保されます。 **問題のある組み合わせを避ける:** 赤-緑が最も一般的な問題です(プロタノピアとデューテラノピアは赤と緑の知覚に影響します)。青-黄色は、トリタノピアを持つ人々に問題を引き起こします。[Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/)のようなシミュレーターを使用して、異なる色覚障害のユーザーにどのように見えるかをテストしてください。 **可能な限り色覚障害に配慮したパレット** を使用します。青、オレンジ、黄色は通常、ほとんどの色覚障害で識別しやすいため、うまく機能します。 ## よくある質問 ### RGBとCMYKの違いは何ですか? RGBは画面用、CMYKは印刷用です。画面は赤、緑、青の光を発光することで色を作り出します(加法混色)。一方、プリンターは紙にシアン、マゼンタ、イエロー、ブラックのインクを重ねて色を作り出します(減法混色)。RGBは光の色域が広いため、CMYKよりも明るく鮮やかな色を生み出すことができます。そのため、画面上の色は印刷すると通常、色が鈍くなります。 ### 印刷すると色が異なって見える理由は? 画面は光を発し、紙は光を反射するため、根本的に異なるプロセスです。さらに、RGBは何百万もの色を扱えますが、CMYKインクはそれらを再現できません。画面のキャリブレーション、紙の品質、インクの変動によってさらに変化が生じます。印刷前は常にCMYK値を確認し、重要な色合わせの作業では実物の校正を依頼してください。 ### オンラインで見た色からhexコードを取得するには? ブラウザの開発者ツールを使用します。ChromeやFirefoxで、任意の要素を右クリックし、「検証」を選択し、スタイルパネルの小さな色の四角をクリックします。これにより、hexコードを表示するカラーピッカーが開きます。ColorZillaなどのブラウザ拡張機能を使えば、さらに簡単に—ページ上のどこでもクリックして色の値を取得できます。 ### hexコードの#記号は何を意味しますか? これは単に「これは16進数のカラーコードです」とブラウザに伝えるプレフィックスです。この標準は初期のHTMLとCSSの仕様に由来します。`#`の後の6文字はRGB値を16進数で表します:赤に2桁、緑に2桁、青に2桁。`#`がないと、ブラウザは色として認識しません。 ### 3桁のhexコードが機能する理由は? これは各色チャンネルが繰り返される場合の省略形です。`#F00`は`#FF0000`(赤)に、`#C9C`は`#CC99CC`(薄紫)に展開されます。この省略形は、帯域幅が高価だった1990年代にファイルサイズを削減するために作成されました。今日でも単純な色には便利です。 ### 色変換は正確ですか? RGB-hex変換は数学的に正確で、異なる数値基数の同じ値です。RGB-CMYK変換は、根本的に異なる色空間(光とインク)を変換するため、近似値となります。このツールは、プロのデザインソフトウェアと同じアプローチで、[ICCカラープロファイル標準](http://www.color.org/specification/ICC1v42_2006-05.pdf)を使用してこれらの変換を行います。 ### アクセシブルな色の組み合わせを作るには? 色を選択した後、[WebAIMのツール](https://webaim.org/resources/contrastchecker/)のようなコントラストチェッカーを使用します。通常のテキストには4.5:1、大きなテキストには3:1の比率が必要です。赤と緑の組み合わせは避けてください(色覚障害のユーザーにとって最も識別が難しい)。迷った場合は、暗いテキストを明るい背景に、またはその逆にします—重要なのは十分な輝度の差です。 ### 画像から色を選択できますか? このツールでは直接できません。ColorZillaなどのブラウザ拡張機能を使用するか、画像のスクリーンショットを撮り、オペレーティングシステムのカラーピッカー(macOSのデジタルカラーメーター、WindowsのPowerToysカラーピッカー)を使用してください。色の値を取得したら、ここで形式間の変換を行えます。 ### 一部のRGB色がCMYKに上手く変換できない理由は? CMYKは(再現可能な色の)「ガモット」がRGBより狭いです。明るい青、鮮やかな緑、エレクトリックオレンジは、CMYKインクで物理的に作成できない色であることがよくあります。これが起こると、プリンターは可能な限り最も近い色に置き換えます。通常、これは彩度が低く見えます。この問題を避けるため、プロの印刷デザイナーは最初からCMYK対応の色を使用することが多いです。 ## カラー変換のコード例 カラーフォーマット間の変換方法を示すコード例をいくつか紹介します:1// RGBからHexへの変換
2function rgbToHex(r, g, b) {
3 const toHex = (c) => {
4 const hex = Math.round(c).toString(16);
5 return hex.length === 1 ? '0' + hex : hex;
6 };
7
8 return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
9}
10
11// HexからRGBへの変換
12function hexToRgb(hex) {
13 // #が存在する場合は削除
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // 3桁と6桁の16進数に対応
17 const expandedHex = cleanHex.length === 3
18 ? cleanHex.split('').map(char => char + char).join('')
19 : cleanHex;
20
21 const r = parseInt(expandedHex.substring(0, 2), 16);
22 const g = parseInt(expandedHex.substring(2, 4), 16);
23 const b = parseInt(expandedHex.substring(4, 6), 16);
24
25 return { r, g, b };
26}
27
28// RGBからCMYKへの変換
29function rgbToCmyk(r, g, b) {
30 // RGBの値を正規化
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // K(黒)を計算
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // 純粋な黒を処理
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // C, M, Yを計算
44 const c = ((1 - normalizedR - k) / (1 - k)) * 100;
45 const m = ((1 - normalizedG - k) / (1 - k)) * 100;
46 const y = ((1 - normalizedB - k) / (1 - k)) * 100;
47
48 return {
49 c: Math.round(c),
50 m: Math.round(m),
51 y: Math.round(y),
52 k: Math.round(k * 100)
53 };
54}
55
56// 使用例
57const rgb = { r: 255, g: 0, b: 0 }; // 純粋な赤
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
601# RGBからHexへの変換
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# HexからRGBへの変換
6def hex_to_rgb(hex_color):
7 # #が存在する場合は削除
8 hex_color = hex_color.lstrip('#')
9
10 # 3桁と6桁の16進数に対応
11 if len(hex_color) == 3:
12 hex_color = ''.join([c*2 for c in hex_color])
13
14 return {
15 'r': int(hex_color[0:2], 16),
16 'g': int(hex_color[2:4], 16),
17 'b': int(hex_color[4:6], 16)
18 }
19
20# RGBからCMYKへの変換
21def rgb_to_cmyk(r, g, b):
22 # RGBの値を正規化
23 r_norm = r / 255
24 g_norm = g / 255
25 b_norm = b / 255
26
27 # K(黒)を計算
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # 純粋な黒を処理
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # C, M, Yを計算
35 c = ((1 - r_norm - k) / (1 - k)) * 100
36 m = ((1 - g_norm - k) / (1 - k)) * 100
37 y = ((1 - b_norm - k) / (1 - k)) * 100
38
39 return {
40 'c': round(c),
41 'm': round(m),
42 'y': round(y),
43 'k': round(k * 100)
44 }
45
46# 使用例
47rgb = {'r': 0, 'g': 128, 'b': 255} # 空色
48hex_color = rgb_to_hex(rgb['r'], rgb['g'], rgb['b'])
49cmyk = rgb_to_cmyk(rgb['r'], rgb['g'], rgb['b'])
50
51print(f"Hex: {hex_color}")
52print(f"CMYK: C={cmyk['c']}%, M={cmyk['m']}%, Y={cmyk['y']}%, K={cmyk['k']}%")
531public class ColorConverter {
2 // RGBからHexへの変換
3 public static String rgbToHex(int r, int g, int b) {
4 return String.format("#%02x%02x%02x", r, g, b);
5 }
6
7 // HexからRGBへの変換
8 public static int[] hexToRgb(String hexColor) {
9 // #が存在する場合は削除
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // 3桁と6桁の16進数に対応
15 if (hexColor.length() == 3) {
16 String expandedHex = "";
17 for (char c : hexColor.toCharArray()) {
18 expandedHex += c + String.valueOf(c);
19 }
20 hexColor = expandedHex;
21 }
22
23 int r = Integer.parseInt(hexColor.substring(0, 2), 16);
24 int g = Integer.parseInt(hexColor.substring(2, 4), 16);
25 int b = Integer.parseInt(hexColor.substring(4, 6), 16);
26
27 return new int[]{r, g, b};
28 }
29
30 // RGBからCMYKへの変換
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // RGBの値を正規化
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // K(黒)を計算
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // 純粋な黒を処理
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // C, M, Yを計算
46 double c = ((1 - normalizedR - k) / (1 - k)) * 100;
47 double m = ((1 - normalizedG - k) / (1 - k)) * 100;
48 double y = ((1 - normalizedB - k) / (1 - k)) * 100;
49
50 return new double[]{
51 Math.round(c),
52 Math.round(m),
53 Math.round(y),
54 Math.round(k * 100)
55 };
56 }
57
58 public static void main(String[] args) {
59 // 使用例
60 int r = 75, g = 0, b = 130; // 紫
61 String hexColor = rgbToHex(r, g, b);
62 double[] cmyk = rgbToCmyk(r, g, b);
63
64 System.out.println("Hex: " + hexColor);
65 System.out.printf("CMYK: C=%.0f%%, M=%.0f%%, Y=%.0f%%, K=%.0f%%\n",
66 cmyk[0], cmyk[1], cmyk[2], cmyk[3]);
67 }
68}
69参考文献と追加情報
- W3C CSSカラーモジュールレベル4 - 公式ウェブカラー仕様
- WCAG 2.1 コントラストガイドライン - カラーコントラストのアクセシビリティ基準
- WebAIM コントラストチェッカー - カラーコントラスト比率のテスト
- ICCカラープロファイル標準 - カラー変換の技術仕様
- MDN Web Docs: CSSカラー値 - ウェブカラー形式の包括的ガイド