11 NİSAN 2011, PAZARTESİ
Hex, RGB ve RGB Hex
Ben sadece HEX ve RGB değerleri dönüştürmek gerekir.
Bunu denedim, ama işe yaramadı.
function RGB2HTML(red, green, blue)
{
var decColor = red 256 * green 65536 * blue;
return decColor.toString(16);
}
Örnek :
#0080C0 to (0,128,192)
CEVAP
11 NİSAN 2011, PAZARTESİ
Aşağıdaki dönüşüm hex ve gerekli sıfır doldurma eklemek için RGB yapar:
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" hex : hex;
}
function rgbToHex(r, g, b) {
return "#" componentToHex(r) componentToHex(g) componentToHex(b);
}
alert( rgbToHex(0, 51, 255) ); // #0033ff
Diğer taraftan dönüştürme:
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
alert( hexToRgb("#0033ff").g ); // "51";
Son olarak, @kazablanka'nın anlatıldığı gibi rgbToHex()
, alternatif bir sürüm ve @cwolves: yorumlar tarafından cevap önerdi
function rgbToHex(r, g, b) {
return "#" ((1 << 24) (r << 16) (g << 8) b).toString(16).slice(1);
}
Aralık 2012 Güncelleştirme 3
Burada da kestirme bir onaltılık üçüz gibi ayrıştırır hexToRgb()
sürümü "#03F":
function hexToRgb(hex) {
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function(m, r, g, b) {
return r r g g b b;
});
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
alert( hexToRgb("#0033ff").g ); // "51";
alert( hexToRgb("#03f").g ); // "51";
Bunu Paylaş: