JavaScript おれおれ Advent Calendar 2011 – 8日目
CSSで色を表現する方法の一つにカラーコードというものがありまして、#55CC2A
みたいな感じで色を表現できますね。光の三原色RGB (Red, Green, Blue)を2桁の16進数で表現して連結したものです。
これをJavaScriptから扱うなら、そのまま16進数で0x55CC2A
みたいに扱うと見た目が似ていて楽チンそうです。(ちなみにアルファベットは大文字でも小文字でも可。)
この中から一色分だけ取得したりするには、ビット演算でムニャムニャするのが良いです。
(あるいはrgb()
の形の表現でも良いでしょう。)
先に結論
// 取得 var code = 0x55cc2a; var red = code >> 16; // => 0x55 var green = code >> 8 & 0xff; // => 0xcc var blue = code & 0xff; // => 0x2a console.log(red.toString(16)); console.log(green.toString(16)); console.log(blue.toString(16));
// 作成 var red = 0x55; var green = 0xcc; var blue = 0x2a; var code = (red << 16) + (green << 8) + blue; // 0x55cc2a console.log(code.toString(16));
ビット演算をもりもり使ってますね。