カラーバーンで2色を合成
カラーバーンは、上に重ねる色に応じてベース色を暗くする、効果の強い合成モードです。この機能は2つの16進カラーに標準の計算式をチャンネルごとに適用し、正規化したHex値と正確なRGBチャンネルを返します。短縮形と6桁のHex表記を受け付け、計算前に両方の入力を検証し、上位チャンネルがゼロの場合も明示的に処理します。結果は常に再現可能なため、デザイン確認、画像処理パイプラインのテスト、テーマ生成、反復可能なAPI処理に適しています。
無料で実行
ベース色と上の色を正しい順序で指定します
カラーバーンの結果は順序に左右されます。まず、既存の面を表す色と、その上に置くレイヤーの色を決めてください。既存の面はbase、重ねるレイヤーはtopに入力します。この処理は平均化ではなく交換法則も成り立たないため、2つのフィールドを入れ替えると通常は異なる結果になります。各入力には、<code>#48C</code>のような3桁、または<code>#4488CC</code>のような6桁の16進数を使用できます。先頭のシャープ記号は省略できますが、アルファチャンネル、CSSの色名、RGB関数、8桁のHex表記には対応していません。構文を限定することで計算を明確にし、暗黙のアルファ合成規則による結果の変化を防いでいます。応答では両方の入力を大文字6桁のHexに正規化し、合成色のHex、RGBオブジェクト、CSSですぐ使えるRGB文字列も返します。必須フィールドがない場合や形式が不正な場合は、黒で補ったり曖昧な文字列を推測修正したりせず、入力エラーとして終了します。
カラーバーンの計算とゼロ除算対策を確認します
計算は赤、緑、青の各チャンネルで個別に行います。各チャンネルについて、255からベース値を引き、その差に「255を上のチャンネル値で割った値」を掛け、結果を255以下に制限してから、再び255から引きます。これは8ビットRGB値で表した一般的なカラーバーンの式です。上のチャンネルがゼロの場合は特別な処理が必要です。ゼロ除算には有用な色の意味がなく、一般的なコードでは有限でない値が生じる可能性があるためです。この機能では、その出力チャンネルを明示的にゼロへ設定し、カラーバーンで定義された境界条件に合わせながら環境に依存しない動作を実現します。それ以外の結果は最も近い整数に丸め、0から255までの範囲に収めます。規則が固定されているため、同じ有効な組み合わせからは常に同じバイト値が返ります。カラーバーンは一般にコントラストを強め、中間調を暗部へ寄せます。ベースの白は上のチャンネルがゼロでなければ明るさを保ちやすく、暗いベースはすぐに黒へ近づくことがあります。
デザインシステムや自動処理で結果を活用します
1回の合成は画像編集ソフトの結果を再現する際に便利ですが、再現可能な出力は反復処理でさらに役立ちます。返されたHexコードをデザイントークンとして保存したり、期待するスナップショットと比較したり、RGB文字列を生成済みCSSへ挿入したり、画像全体を描画する前に複数のオーバーレイ候補を評価したりできます。この処理は符号化されたRGBチャンネルを直接扱うため、絵の具、インク、光、透明度、カラーマネジメント文書のシミュレーションではなく、合成モードの計算機としてお使いください。プロファイル変換、チャンネルの線形化、透明度の合成は行いません。本番で一貫した結果を得るには、同じRGB空間を前提とする色を指定し、呼び出しとともに順序を記録してください。応答の正規化済みフィールドから、計算対象を正確に確認できます。不正値は早期に拒否されるため、誤ったトークンがパレットに混入しません。計算は純粋で、ネットワーク、乱数、時刻、保存状態を使用しません。ブラウザーとAPIは同じアルゴリズムを実行し、自動処理は1件につき$0.002です。
活用例
デザインの合成結果を再現
画像編集ソフトを開かずに、記録された2つのHexカラーからカラーバーン結果を計算できます。
テーマ用トークンを生成
ベース色と重ねる色から、生成CSSやコンポーネントテーマ向けの安定した暗色トークンを作成できます。
描画ロジックをテスト
再現可能なRGB出力を、グラフィックやスタイル処理パイプラインの期待値として利用できます。
よくある質問
APIで1回合成する料金はいくらですか?
1件あたり$0.002です。ブラウザー上の機能でも計算できます。
カラーバーンは2色を均等に混ぜる処理ですか?
いいえ。順序に依存する非線形の合成モードで、通常はベースを暗くしてコントラストを強めます。
上のRGBチャンネルがゼロの場合はどうなりますか?
ゼロ除算を避けて境界規則に従うため、該当する出力チャンネルを明示的にゼロへ設定します。
どの色形式を利用できますか?
先頭のシャープ記号の有無を問わず、3桁または6桁のRGB Hexを使用できます。アルファ値、色名、CSS関数は拒否されます。
ベース色と上の色を入れ替えても結果は同じですか?
いいえ。交換法則が成り立たないため、入れ替えるとすべての出力チャンネルが変わる場合があります。
透明度やカラープロファイルも適用されますか?
いいえ。指定された8ビットRGBチャンネルに、不透明なカラーバーン関数だけを直接適用します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/color-burn \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":"#808080","top":"#808080"}'const res = await fetch("https://api.kit.forhosting.com/color/color-burn", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": "#808080",
"top": "#808080"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/color-burn",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": "#808080",
"top": "#808080"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/color-burn", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":"#808080","top":"#808080"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":"#808080","top":"#808080"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/color-burn", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"base": "#808080",
"top": "#808080"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.color_burn",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |