2色を比率で混ぜる加重RGBカラーツール
このツールは、2つの16進カラーをRGB空間で正確な割合により合成します。第1色、第2色、第2色が占める百分率を指定してください。赤・緑・青を個別に平均し、有効な整数チャンネルへ丸め、大文字で正規化した16進値とRGB数値を返します。目視で色を選ぶのではなく、デザイントークン、グラフ、テーマ、自動生成素材で再現可能な結果が必要な場合に適しています。不正な色や比率は明確に拒否され、同じ入力からは必ず同じ出力が得られます。
無料で実行
合成前に比率の向きを決めます
比率は第2色の寄与率として扱います。0では全重量が第1色に割り当てられ、結果はcolor1と一致します。100ではcolor2になり、25では第1色が75パーセント、第2色が25パーセントです。入力順だけを逆にすると結果も変わるため、段階的な配色では向きが重要です。#F00のような3桁省略形、または#FF0000のような6桁の16進値を入力してください。先頭の記号は省略できますが、残りはすべて16進文字でなければなりません。CSS色名、RGB関数、アルファ付き8桁色、欠落項目、不正形式は推測せず拒否します。この明示的な検証により、一括処理の入力ミスは一見正しそうな誤色ではなく入力エラーになります。再利用するスクリプトでは順序を記録し、指定百分率がどちら側に適用されるかを明確にしてください。
加重RGB計算の仕組みを理解します
まず各16進カラーを0から255までの赤・緑・青チャンネルへ変換します。各チャンネルについて、第1値に1から比率小数を引いた値を掛け、第2値に比率小数を掛け、両者を加算して最も近い整数へ丸めます。50パーセントなら両入力が同じ重みとなり、10パーセントなら第1色に近くなります。各チャンネルは独立して計算され、乱数、参照表、ネットワーク、隠れた配色規則は使いません。これは符号化RGBの線形平均であり、知覚的な混色やHSL、LAB、LCH、顔料、ガンマ補正光への変換ではありません。そのため、明るさが大きく違う色の中点は視覚的な中央に見えないことがあります。これは意図した仕様です。メソッド項目によって、将来の監査でも計算法を識別できます。
設計と自動化で結果を確実に使います
応答には、大文字6桁の16進カラーと整数チャンネルを持つRGBオブジェクトが含まれます。さらに比率、正規化した両方の重み、計算法も示します。16進値はCSS変数、テーマ定義、グラフ設定、メールテンプレート、トークンファイルで直接使えます。別のプログラムが数値を必要とする場合や、コントラストと輝度を調べる場合は個別チャンネルをご利用ください。決定的で範囲の限られた計算なので、固定要求を基準データとして保存し、毎回完全一致でテストできます。単発作業はブラウザー版で行えます。ビルド処理、CMS、アプリから自動化するAPI要求は$0.002です。文字の背景に使う場合は、正しい比率でも十分なコントラストを保証しないため、アクセシビリティを確認してください。色階調には同じ順序の組を保ち、計画した比率列を適用します。
活用例
デザイントークンの段階を生成
承認済みの2つのブランド色から、比率を記録した再現可能な中間トークンを作成します。
グラフ用の色違いを作成
各色を手動で選ばず、系列色を共通の背景色やアクセント色へ近づけます。
テーマ付き画面の状態を検査
自動テーマ処理で、選択中や無効などの状態色を安定して生成します。
よくある質問
比率は何を表しますか?
color2の百分率重量です。残りの割合はcolor1に割り当てられます。
どの色形式を利用できますか?
先頭記号の有無を問わず、3桁または6桁の16進カラーを利用できます。
小数のチャンネル値はどうなりますか?
加重した各RGBチャンネルをJavaScriptの決定的な処理で最も近い整数へ丸めます。
知覚的な混色ですか?
いいえ。符号化RGBチャンネルの直接平均であり、HSL、LAB、ガンマ補正による混色ではありません。
API要求の料金はいくらですか?
APIの基本料金は1項目あたり$0.002です。ブラウザーツールはページ上で直接ご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/mix-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color1":"#FF0000","color2":"#0000FF","ratio":50}'const res = await fetch("https://api.kit.forhosting.com/color/mix-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/mix-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/mix-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color1":"#FF0000","color2":"#0000FF","ratio":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color1":"#FF0000","color2":"#0000FF","ratio":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/mix-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"color1": "#FF0000",
"color2": "#0000FF",
"ratio": 50
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.mix_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |