Color構造体からHTMLの色名およびカラーコード(#rrggbb)に変換する。 [C#]

HTML セーフ Webカラー 一覧

Color構造体の色(Colorオブジェクト)をHTML形式の文字列に変換する方法を紹介します。

HTML形式の文字列に変換

Color構造体の色をHTML形式の文字列に変換する場合は、System.Drawing名前空間にあるColorTranslatorクラスのToHtml静的メソッドを使用します。
ToHtml静的メソッドには、パラメーター(引数)にColorを指定します。

#rrggbb形式の文字列(カラーコード)に変換

ColorTranslatorクラスのToHtml静的メソッドで、Color構造体をHTML文字列形式に変換する場合、Webカラーとして名前が取得できる場合は名前に変換されます。
例えばColor.BlueをToHtml静的メソッドに指定した場合は「Blue」という文字列が返されます。
ですので、確実に#rrggbb形式のカラーコードを取得する場合は、少し加工(変換)が必要になります。

string.Formatメソッドを使用する方法

stringクラスのFormatメソッドを使用して、RGBの値をそれぞれ16進数に変換して出力することで、#rrggbb形式の文字列として取得することができます。

RGB値から再作成する方法

HTML形式の文字列を取得する対象のColorからRGB(赤緑青)を取得して、Colorオブジェクトを再作成することで#rrggbb形式の文字列を取得することもできます。

ColorTranslatorクラスのToHtml静的メソッドを使用する場合

Color構造体のNameプロパティを使用する場合

サンプルプログラム

Windowsフォームアプリケーションのプロジェクトでサンプルプログラムを作成します。

ユーザーインターフェース(画面デザイン)

フォームにはカラーダイアログボックスを表示するボタン(button1)と、選択したカラーを表示するパネル(panel1)と、HTML形式の文字列を表示するテキストボックス(textBox1)と、#rrggbb形式のカラーコードを表示するテキストボックス(textBox2)を配置します。

ColorオブジェクトをHTML形式の文字列に変換するサンプルフォームのデザイン

ソースコード

ボタンをクリックした際にカラーダイアログボックスを表示して、選択されたカラーのオブジェクトを取得し、HTML形式の文字列を取得、表示する処理を記述します。

サンプルプログラムの実行

プロジェクトをビルドして実行(デバッグ)します。

ColorオブジェクトをHTML形式の文字列に変換するサンプルフォーム

ボタンをクリックするとカラーダイアログボックスが表示されます。

ColorオブジェクトをHTML形式の文字列に変換するサンプル カラーダイアログボックスを表示

カラーダイアログボックスで色を選択します。

ColorオブジェクトをHTML形式の文字列に変換するサンプルで色を選択

選択したカラー(色)とHTML形式の文字列とカラーコード(#rrggbb)の文字列が表示されます。

ColorオブジェクトをHTML形式の文字列に変換するサンプルでHTML形式の文字列とカラーコードを表示

Red(赤)を選択すると以下のような結果になります。

ColorオブジェクトをHTML形式の文字列に変換するサンプルでHTML形式の文字列とカラーコードを表示

Green(緑)を選択すると以下のような結果になります。

ColorオブジェクトをHTML形式の文字列に変換するサンプルでHTML形式の文字列とカラーコードを表示