画像の色を反転して補色のRGB値を計算
RGBの各画素の正確な補色を求めます。各チャンネルは255から元の値を引いた値になるため、黒は白に、赤はシアンになり、12、34、56は243、221、199になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
画像色反転ツールは、RGBピクセル値の並びを受け取り、それぞれの正確な補色を計算します。赤・緑・青の各チャンネルを元の値から「255−値」へ置き換えるため、黒は白に、赤はシアンになり、中間の値も一定の規則で変換されます。処理前にすべてのチャンネルを検証し、標準的なRGB範囲である0–255から外れた値は拒否します。簡単な確認、教材、テスト、再現性が必要なデータ処理に安心してご利用いただけます。
RGB値を明確な構造で入力します
1個以上のピクセルを入力し、それぞれに数値のr、g、bチャンネルを指定してください。値の順序は維持されるため、最初の反転結果は最初の入力に、2番目の結果は2番目の入力に対応し、以降も同様です。0と255の端点だけでなく、その間の数値も使用できます。
各値は有限であり、標準RGB値の閉区間0–255に収まっている必要があります。チャンネルが欠けている場合、数値でない場合、無限大の場合、または範囲外の場合は、一部だけ変換した一覧を返さず、入力エラーとして処理を停止します。
この厳密な検証により、パーサー、表計算、画像スクリプト、テスト用データなどから取得したRGB値に誤りがあっても、後続の画像処理へ気付かず渡してしまうことを防げます。
色反転の計算方法を確認します
3つのチャンネルは、それぞれ同じ式「出力値=255−入力値」で独立して反転されます。たとえば赤255、緑0、青0のピクセルは、赤0、緑255、青255、つまりシアンになります。0、0、0で表される黒は、255、255、255の白になります。
中央付近の値は中央付近に残り、暗いチャンネルは明るく、明るいチャンネルは暗くなります。カラープロファイル変換、ガンマ補正、丸め、混色、画像圧縮は行いません。入力された数値を直接処理するため、計算内容が明確で再現できます。
有効な小数値を整数へ強制変換することもなく、たとえば10.5は244.5になります。そのため、後からラスタライズや量子化を行う前段で浮動小数点RGB値を扱う処理にも適しています。各出力は対応する入力だけで決まるので、同じ値で繰り返し呼び出せば、常にまったく同じ結果が得られます。
画像処理やテストで結果を利用します
返されるオブジェクトには、元の順序を保った反転済みRGBレコードのpixels一覧が含まれます。ご自身のcanvasコード、ラスターエンコーダー、シェーダー準備工程、テストデータ生成、色解析などへ、そのまま値を渡せます。
この機能がエンコード済みのPNGやJPEGではなく値を対象とするのは、デコードと再エンコードによってメタデータ、圧縮、アルファチャンネル、カラープロファイルに関する判断が必要となり、単純なRGB反転の範囲を超えるためです。対象を絞った仕様により、計算を監査し、異なる環境間で結果を比較しやすくなります。
画像テストの基準値作成、授業での補色の説明、別のツールで抽出済みの色の反転に特に便利です。
活用例
画像テスト用データを作成
反転計算をテスト準備側に重複実装せず、単体テスト向けの再現可能な補色RGB値を生成できます。
補色の仕組みを説明
黒、白、原色、中間のRGB値がチャンネルごとの反転でどう変わるかを正確に示せます。
描画前のピクセルを準備
canvas、ラスターパーサー、画像パイプラインでデコード済みのRGB値を次の工程前に変換できます。
よくある質問
処理料金はいくらですか?
同じ再現可能な計算を、このページのブラウザー上でも実行できます。
チャンネルが0–255の範囲外だとどうなりますか?
該当するピクセルとチャンネルを示す入力エラーになり、部分的な結果は返されません。
小数のRGB値にも対応していますか?
はい。 0から255までの有限な数値を受け付け、強制的に丸めず正確な反転値を返します。
PNGやJPEGファイルを入力できますか?
いいえ。 デコード済みのRGBピクセル値を受け取ります。ファイルのデコード、メタデータ、圧縮、アルファチャンネル、カラープロファイルは対象外です。
ピクセルの順序は維持されますか?
はい。 各出力レコードは、対応する入力レコードと同じ一覧位置に保持されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/image/invert-colors \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}'const res = await fetch("https://api.kit.forhosting.com/image/invert-colors", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pixels": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/invert-colors",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pixels": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/invert-colors", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pixels":[{"r":255,"g":128,"b":0},{"r":12,"g":34,"b":56}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/invert-colors", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"pixels": [
{
"r": 255,
"g": 128,
"b": 0
},
{
"r": 12,
"g": 34,
"b": 56
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.invert_colors",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
RGB値を明確な構造で入力します
1回のリクエストでは最大100,000個まで扱え、ブラウザー利用とAPI自動化の双方でメモリと実行時間を予測しやすくしています。
画像処理やテストで結果を利用します
ブラウザー版はAPIと同じ純粋な計算を実行します。ページ上で対話的に確認し、定期処理や大規模な連携では変換規則を変えずに1回$0.002でAPIをご利用いただけます。
技術的な質問
1回に何個の値を処理できますか?
1回のリクエストには1個から100,000個までのRGB値を含められます。