減法混色ミキサー
黄の#FFFF00と青の#0000FFを絵の具のように半分ずつ混ぜると、画面の光の混色とは違い緑の#008000になります。授業や工作、イラストで顔料のふるまいを示せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 色1
- #FFFF00
- 色2
- #0000FF
- 比
- 50
- T
- 0.5
- Hex
- #008000
- RGB文字列
- rgb(0, 128, 0)
デジタルの色ツールはほとんど光を混ぜます。赤と青はRGBでチャンネルが加算されるためマゼンタになります。顔料で考える画家やデザイナーは別の結果を期待します。赤と青は紫褐色に濁り、黄と青は緑へ寄り、補色の等量混合は明るくならずくすむべきです。この減法混色ミキサーは2つのhexと比率を受け取り、RYB顔料座標へ変換し、濡れた絵の具を混ぜるように座標を混合して、結果のsRGB hexと各チャンネルを返します。アルゴリズムは純粋で決定的です。イラスト、手芸チュートリアル、減法混色の教育デモ、画面光のように絵の具が振る舞うと偽ってはならないデザインシステムで、直感的な顔料ブレンドが必要なときにご利用ください。
減法RYB混色がRGB光の混合とどう違うか
加法混色はディスプレイ上で色光がどう合わさるかをモデル化します。赤光と緑光は黄になり、光が増えるほど結果は明るくなりがちです。減法混色は顔料と染料をモデル化します。
各顔料は一部の波長を吸収し、組み合わせると吸収が増えるため、混合は純粋な二次光ではなく、より暗くくすんだ結果に向かいます。本機能は絵の具に着想した古典的な経路を実装します。まず各入力hexを0から255のsRGBチャンネル値に解析します。
それらのチャンネルは、可視化研究で普及した絵の具風変換に従い、赤と緑から黄を取り出し残りの緑を黄と青に折り込む再配分により、赤・黄・青の顔料空間へ写像されます。RYB空間では比率で制御される線形重みで2色を混ぜます。0は第一顔料を純粋に保ち、100は第二を純粋に保ち、50は等量混合です。
純粋なRGB線形補間と比べると、赤と青を50パーセントで混ぜてもきれいな中間マゼンタにはならず、顔料経路は学習者が絵の具を混ぜるときに述べるような、より褐色や紫泥の結果になります。黄みやシアン寄りの青は緑へ寄ります。補色ペアはくすみます。 これはカタログ内の既存RGBミキサーとの意図的な製品差であり、画面光の補間が欲しいときはそちらが適切です。
活用例
美術と色彩理論の授業
赤と青の絵の具が赤と青の光とどう違う濁り方をするかを、ワークシートやLMS確認用の決定的hexで示します。
手芸・顔料製品のプレビュー
糸・インク・レジン着色の混合を、実物サンプル前に絵の具風でプレビューし、ratioでレシピ配分を指定します。
絵の具ミックス付きデザインツール
顔料風スウォッチにRGB補間を使うべきでないエディタやジェネレータに、減法混合コントロールを提供します。
よくある質問
通常のカラーミキサーとの違いは?
通常のRGBミキサーは光チャンネルを補間します(赤+青→マゼンタ)。
どのhex形式が使えますか?
3桁または6桁のhexで、任意の#または0x、大文字小文字は不問です。
ratioとは何ですか?
ratioは顔料混合におけるcolor2の百分率です。0–100外は拒否されます。
黄と青を絵の具のように混ぜると何色になりますか?
緑になります。#FFFF00と#0000FFを50で混ぜると、赤0、緑128、青0の#008000になり、実際の黄と青の絵の具を混ぜたときと同じです。
赤と青を混ぜてもきれいなマゼンタにならないのはなぜですか?
顔料は光を吸収し、混ぜるほど多く吸収するからです。本物の絵の具と同じく、赤と青はくすんだ紫に寄り、補色どうしは明るくならずに濁ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/color/mix-subtractive \
-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-subtractive", {
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-subtractive",
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-subtractive", 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-subtractive", 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_subtractive",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
減法RYB混色がRGB光の混合とどう違うか
混合されたRYB三重項はsRGBへ戻され、チャンネルは整数に丸められ、大文字hexとrgbオブジェクトおよびrgb_stringとして出力されます。
入力契約、応答フィールド、検証ルール
3桁または6桁の十六進数字、任意のハッシュまたはzero-x接頭辞、大文字小文字は区別しません。応答はハッシュ付き6桁大文字に正規化します。ratioは0から100(両端含む)の有限数で、顔料混合におけるcolor2の百分率シェアを表します。浮動小数の中間段は一貫して丸められ、エッジワーカーとローカルNodeがバイト一致します。必須フィールド3つを含むJSON本体をPOSTしてください。color1とcolor2はhex色文字列です。ハンドラが受け付ける別名にはhex1、hex2、from、to、paint1、paint2、percent、amount、mix、t、weightがあり、古いフォームやスクリプトでもフィールド名を変えずに同じエンジンを呼べます。欠落フィールド、空文字、非hex文字、桁数誤り、非有限のratio、0〜100外のratioはinvalid_inputと問題を名指しするメッセージで失敗し、検証失敗は課金されません。成功時はcolor1、color2、ratio、t(ratioを100で割った値)を返し、混合のhex・rgb・rgb_string、color1_rgbとcolor2_rgb、安定したクライアント向けに丸めた中間三重項color1_ryb・color2_ryb・mixed_ryb、およびRGB補間と区別するためのmethod=ryb_subtractiveを含みます。
減法顔料ミキサーが活きる場面
美術教育サイトやSTEAM教材ジェネレータは、「この赤とあの青を絵の具のように混ぜるとどうなるか」に答えるライブデモを、完全な色管理スタックなしで必要とします。糸・レジン着色・水彩の組み合わせを提案する手芸・DIYジェネレータは、利用者がチューブの顔料で考えているなら光の加法数学を使うべきではありません。「UIテーマ用の線形RGB混合が必要なら加法ミキサーを、絵の具の直感が必要なら本機能を使ってください。絵の具のように混ぜる」制御を出すイラストやコンセプトアートツールは、このparseエンドポイントで決定的なスウォッチを得てから手で調整できます。実装はparseティアAのため、成功した呼び出しは毎回公開の基本料金$0.002で、モデルトークンも外向きネットワークも使いません。リクエストは小さく保ち、再現可能なデザイントークンとして返却hexを保存し、無効hexは再試行ではなくクライアントエラーとして扱ってください。
技術的な質問
2色を絵の具のように減法で混ぜるには?
color1とcolor2をhex文字列、ratioを0から100(color2の割合)で送ってください。APIは両方をRYBへ変換し、顔料チャンネルを混ぜてsRGBへ戻し、hexとRGBを返します。
減法混色ミキサーの料金は?
ブラウザツールは無料です。APIは前払いKIT残高で成功1回あたり$0.002、無効入力は課金されません。