Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JS: rgb() -> HTML Hex?

Matso [20.07.2007 17:26:28]

#

Otsikko kertookin jo kaiken. Eli löytyykö tohon RGB():stä HTML Hex muotoseen väriin muuttamiseen jotain helppoa keinoa, vai pitääkö tota oikeesti ruveta jollain ihme regexpleillä tutkimaan? Eli rgb arvo siis on muotoa: rgb(41,144,13) , eli kun ne ei ole edes aina kolmenumeroisia sarjoja, niin ei saa substring():lläkään helposti tosta poimittua noita arvoja ja convertattua.

Vasta_alkaja [20.07.2007 18:02:54]

#

PdPad eritotissa on itsessään hyvä värikoodin kääntäjä sekä niitä löytyy paljon netistä.

http://www.colorschemer.com/online.html

Tuossa on yksi hyvä linkki, jos oikein ymmärsin ongelmasi.

Matso [20.07.2007 18:05:31]

#

Ymmärsit väärin.

Edit:

Noniin, sain toimimaan. Tein sitten tollasen regexpin joka ottaa siitä noi rgb arvot ja sitten käytin netistä löydettyä valmista rgb->hex convertteria.

//ottaa parametrikseen rgb värin stringinä: "rgb(123,123,123)"
function RGB2HTML(rgb){
  red = rgb.replace(/rgb\((.+?)\,(.+?)\,(.+?)\)/,"$1");
  green = rgb.replace(/rgb\((.+?)\,(.+?)\,(.+?)\)/,"$2");
  blue = rgb.replace(/rgb\((.+?)\,(.+?)\,(.+?)\)/,"$3");

  var hexColor = "#"+toHex(red) + toHex(green) + toHex(blue);

  return hexColor.toString(16);
}

function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}

atomimalli [20.07.2007 20:03:01]

#

Ei hexoissa ole mitään vaikeaa.

Grez [23.07.2007 21:09:55]

#

Matso kirjoitti:

 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}

Siis mitä ihmettä?

==>

return N.toString(16);

Tietty jos täytyy toimia vanhemmissa kuin 1.1:ssa niin ok.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta