SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • Wild Academy

    Wild Academy

    8 Aralık 2009

İLGİLİ SORU / CEVAPLAR