ANSI truecolor生成
ANSI truecolorエスケープシーケンス生成ツールは、一般的な16進色またはRGB色を、24ビットカラー対応端末が使用する正確なSelect Graphic Rendition命令へ変換します。短縮形または完全形の16進値、あるいはrgb()形式の色を入力し、前景色か背景色を選択してください。結果には、直接利用できる実際のエスケープ文字、ソースコードや設定へ記載しやすい可視エスケープ表現、正規化済みチャンネル値、標準リセットシーケンスが含まれます。決定的かつ高速に動作し、シェルツール、ビルドスクリプト、ログシステム、コマンドラインインターフェースに適しています。
無料で実行
色と変更する端末領域を選択します
まず、対応する形式のいずれかで色を指定してください。<code>#3af</code>のような3桁の16進表記、<code>#33AAFF</code>のような6桁の16進表記、ハッシュ記号を除いた同じ6桁、または<code>rgb(51, 170, 255)</code>のようなRGB関数を利用できます。16進文字では大文字と小文字を区別せず、RGB関数内の空白も許可されます。各RGBチャンネルは、ゼロから255までの整数でなければなりません。次に、色を前景へ適用するか、背景へ適用するかを選択してください。前景は通常テキストを意味し、背景はその背後の領域です。コマンド出力で最も一般的に使われるため、既定値は前景です。生成ツールは短縮16進値を展開し、最終色を大文字6桁の16進表記へ正規化して、赤、緑、青の各チャンネルを10進数でも返します。そのため、スクリプトへ組み込む前に結果を簡単に確認できます。アルファチャンネル、CSS色名、パーセント値、範囲外のチャンネルは意図的に拒否します。ANSI truecolorシーケンスが符号化するのは3つの8ビット色チャンネルだけで、アルファ成分は存在しないためです。明確な検証により、誤って入力されたCSS値が想定外の端末色へ黙って変換されることを防ぎます。
生成したエスケープシーケンスを安全に使用します
24ビットANSI色は、エスケープ文字に続くSGRパラメーター一覧で表します。前景色は<code>38;2</code>、背景色は<code>48;2</code>で始まり、その後に赤、緑、青の順で3つの10進チャンネルが続き、最後は<code>m</code>です。応答には、同じ命令を表す2種類の表現が含まれます。<code>sequence</code>フィールドには実際のESC制御文字が入るため、プログラムはそのままテキストへ連結できます。<code>escaped</code>フィールドは、可視文字の<code>\x1b</code>で始まります。リテラルの制御文字では分かりにくいJavaScript、シェル、JSONテンプレート、文書へコピーするときに便利です。エスケープ済み文字列の解釈はホスト言語によって異なるため、実行環境に適した表現をご利用ください。色付き部分の後には、返されたリセット値を追加してください。そうしないと、後続のプロンプトやログ行が同じスタイルを引き継ぐ場合があります。概念的には、色シーケンス、メッセージ、リセットの順で出力を構成します。機械可読出力では、利用側が明示的に対応していない限り色コードを避けてください。不可視の制御文字によって比較、パーサー、スナップショットが壊れる可能性があります。
端末の対応状況と本番環境での動作を理解します
Truecolorは多くの最新端末エミュレーターで利用できますが、ANSIプロトコルはすべての出力先に24ビット色の表示を義務付けていません。リダイレクト先のファイル、基本的な端末、継続的インテグレーションのログビューアー、スタイルを除去する設定のアプリケーションでは、色が表示されなかったり、制御文字がそのまま見えたりする場合があります。色は情報ではなく表示上の補助として扱ってください。スタイルを除去しても、ラベル、重大度、状態メッセージの意味が伝わる必要があります。多くのコマンドラインプログラムは、標準出力が対話型端末へ接続されている場合だけ色を有効にし、強制または無効化のためのフラグや環境設定も提供します。この生成ツールは呼び出し側の端末を検査しません。検査すると、純粋なAPI結果が無関係な実行環境へ依存してしまうためです。要求された色に対応する正確なバイトシーケンスだけを作成します。アルゴリズムはネットワークへ接続せず、乱数を使わず、入力を保存しません。したがって、同じ入力からは同じJSONが返ります。APIの利用料金は1リクエストあたり$0.002で、ブラウザー実行でも同じ純粋な変換ロジックを利用します。ログシステムでは、構造化イベントにシーケンスを保存せず、人が読む最終レンダラーでのみ追加することをお勧めします。検索や後続のエクスポートを汚さず、見やすいコンソール出力を実現できます。
活用例
コマンドラインの状態表示を色分け
成功、警告、失敗のラベルに正確な前景色シーケンスを生成し、パレットは一般的なHEX表記のまま管理できます。
開発ログを見やすく整形
人が読むコンソールフォーマッター用に前景色または背景色コードを作成し、各色付き部分の後へ提供されたリセットを追加できます。
デザイン色を端末テーマへ変換
デザインシステムからコピーした色を、手作業で10進変換せずに正規化RGBチャンネルとANSI truecolorシーケンスへ変換できます。
よくある質問
どの色形式を利用できますか?
#RGB、#RRGGBB、ハッシュ記号なしの6桁16進値、またはゼロから255までの整数チャンネルを持つrgb(r, g, b)をご利用ください。
sequenceとescapedの違いは何ですか?
sequenceフィールドには実際のESC文字が含まれます。escapedフィールドは、ソースコードや設定へコピーしやすい一般的な\x1b表記を示します。
色の適用を終了するにはどうしますか?
色付きテキストの後へ、返されたreset値を追加してください。文字列エスケープを解釈する環境向けに、可視エスケープ表現も含まれます。
すべての端末でこの色が表示されますか?
いいえ。出力先がANSI Select Graphic Renditionシーケンスと24ビットtruecolorに対応している必要があります。リダイレクトまたはフィルター済み出力では表示されない場合があります。
APIリクエストの料金はいくらですか?
APIリクエストは1回$0.002です。同じ変換をブラウザー上で無料実行することもできます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/ansi-truecolor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#33A1FF"}'const res = await fetch("https://api.kit.forhosting.com/dev/ansi-truecolor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#33A1FF"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ansi-truecolor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#33A1FF"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ansi-truecolor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#33A1FF"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#33A1FF"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ansi-truecolor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"color": "#33A1FF"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ansi_truecolor",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |