以下は、rgb を 16 進数の色に変換する関数です。しかし、それは完全に正しいわけではありません。(0, 255, 0) (#00ff00) で。ff00 を返すため、有効な色ではありません。正しい 16 進値を返すように変更するには助けが必要です。
function rgbToHex(r, g, b) {
var rgb = b | (g << 8) | (r << 16);
return rgb.toString(16);
}
以下は、rgb を 16 進数の色に変換する関数です。しかし、それは完全に正しいわけではありません。(0, 255, 0) (#00ff00) で。ff00 を返すため、有効な色ではありません。正しい 16 進値を返すように変更するには助けが必要です。
function rgbToHex(r, g, b) {
var rgb = b | (g << 8) | (r << 16);
return rgb.toString(16);
}
これはどう:
//...
return (0x1000000 | rgb).toString(16).substring(1);
これを試して:
return ("000000"+rgb.toString(16)).slice(-6);
// ^----returns last 6 chars
return ((b | g << 8 | r << 16) / 16777216).toString(16).substring(2);
また
return ((b | g << 8 | r << 16) / 0x1000000).toString(16).substring(2);
免責事項: 私は、下記の pusher.color ライブラリの作成者です。
ライブラリを使用してもかまわない場合は、pusher.colorやxcolorなどのライブラリを試してみてください。Javascript での色操作について、Stackoverflow でいくつか質問されたことに気づきました。これにより、ライブラリを使用して問題を解決するための全体的な時間を節約できるかもしれません。必要なものの pusher.color 構文は次のようになります。
var hexString = pusher.color('rgb', r, g, b).hex6();
これはどう:
return $.sprintf("#%02x%02x%02x", r, g, b);
このためには、jQuery を使用する必要があります。