PHPでカラーコード「HEX」を「RGB」に変換する方法です。
CMSで設定したテーマカラーなどに透過率を指定したく、既にHEXで設定されているカラーコードでは都合が悪かったので、システム内でRGBに変換しました。
HEXとRGBの違いについては、赤、緑、青の3原色を、それぞれ16進数、10進数で表現しています。
したがって、処理としてはシンプルに16進数を10進数に変換すればよいだけです。
例えば、任意の赤「#F44336」をRGBに変換します。
$color_hex = "#F44336"; $code_red = hexdec(substr($color, 1, 2)); $code_green = hexdec(substr($color, 3, 2)); $code_blue = hexdec(substr($color, 5, 2)); $color_rgb = "rgb(" . $code_red . ", " . $code_green . ", " . $code_blue . ")";
HEXでは2桁ごとに3原色を表しているので、まずは文字列を「#」を除いた「F4」「43」「36」に分けます。
それぞれ関数「hexdec」を使って16進数から10進数に変換した後に、RGBの文字列フォーマットに当てはめれば「rgb(244,67,54)」となります。
これで「rgba(244,67,54,0.3)」のようにスタイルで透過率が指定できるようになりました。
デザインには疎いので、はじめは難しいかと思っていましたが、意外と簡単ですね。
コメントする