peterS.: color-styles konvertieren

Beitrag lesen

hallo Alle,

aus gegebenem anlass:

Ich würde gerne #ffc in HEXA umrechnen.
Gibt es entsprechende (Online-)Konverter?

Was für ein Farbformat ist #ffc?

bin gerade mit meinem "style.cssText"-
farbkonvertierer fertig geworden - ja,
ich brauche so ein ding  -  wer so etwas
auch schon immer mal haben wollte - bitte:

//behandelt einen string so, als entspraeche dessen value der eigenschaft "style.cssText" eines beliebigen html-knotens und raeumt diesen erst einmal auf;
  String.prototype.cssTextTrim = function() {return((this.replace(/\s*:\s*/g,":").replace(/\s*(\s*/g,"(").replace(/\s*)\s*/g,")").replace(/\s*,\s*/g,",").replace(/\s*;\s*/g,";").replace(/\s+/g," ").replace(/^\s/,"").replace(/\s$/,"").replace(/;+/g,";").replace(/^;/,"").replace(/;$/,"")+";").toLowerCase());};

String.prototype.getColorVersions = function() { // getColorMutations
/*
  - erzeugt, wenn moeglich, 3 varianten von "cssText" sobald eine "#xxyyzz"- bzw. "rgb(aaa,bbb,ccc)"-anweisung in "cssText" gefunden wird;
  - die varianten sind notwendig, um styles auch dann noch eindeutig identifizieren zu koennen, wenn diese z.b. durch den mozilla intern aus dem
    hexadezimalen ":#xxyyzz"- in das dezimale "rgb(aaa,bbb,ccc)"-format umgerechnet, oder falls styles mit mischungen aus diesen beiden formaten
    versehen wurden, oder aber wenn anwender die kurzschreibweise fuer das hexadezimale format beutzen - statt "#ffcc00" eben "#fc0";
  - varianten:
      rgb(255,204,0)  - /rgb\s*(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*)/i - mit RegExp.$1,RegExp.$21,RegExp.$3;
      #ffcc00         - /#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i                           - mit RegExp.$1,RegExp.$21,RegExp.$3;
      #fc0            - /#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([;\s])/i                    - mit RegExp.$1,RegExp.$21,RegExp.$3,RegExp.$4;

- der rueckgabewert ist ein objekt mit den eigenschaften "rgb", "hex" und "half"; ("short" ist im javascript-sprachraum ein reserviertes wort)
*/
  //alert("]" + cssText + "[");
    var cssText = this.cssTextTrim(); // formatiert "style.cssText"-attribut-strings nach einem einheitlichen schema;
    var versions = null;
    if ((cssText.search(/rgb\s*(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*)/i) >= 0) || (cssText.search(/#[0-9a-f]{1}[0-9a-f]{1}[0-9a-f]{1}[;\s]/i) >= 0) || (cssText.search(/#[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}/i) >= 0)) {
      var regX = null, regX_$1 = "", regX_$2 = "", regX_$3 = "", regX_$4 = "";
      versions = {};        // alle moeglichen farbschemata:
      versions.rgb = null;  // - dezimale schreibweise mit "rgb"-praefix;
      versions.hex = null;  // - klassische hexadezimal-schreibweise;
      versions.half = null; // - halbe hexadezimal-schreibweise;
    // - als ausgangsbasis fuer cssText dient die dezimale schreibweise mit "rgb"-praefix;
    // - diese grundlage muss unter umstaenden erst einmal geschaffen werden;
    // - die 3 moeglichen varianten werden dann vom ur-style abgeleitet;
    //alert("]" + cssText + "[");
      regX = /#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i;
      while (regX.test(cssText)) {
        regX.exec(cssText);
        regX_$1 = parseInt(RegExp.$1,16);
        regX_$2 = parseInt(RegExp.$2,16);
        regX_$3 = parseInt(RegExp.$3,16);
        cssText = cssText.replace(regX,("rgb(" + regX_$1 + "," + regX_$2 + "," + regX_$3 + ")"));
      }
      regX = /#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([;\s])/i;
      while (regX.test(cssText)) {
        regX.exec(cssText);
        regX_$1 = parseInt((RegExp.$1 + RegExp.$1),16);
        regX_$2 = parseInt((RegExp.$2 + RegExp.$2),16);
        regX_$3 = parseInt((RegExp.$3 + RegExp.$3),16);
        regX_$4 = RegExp.$4;
        cssText = cssText.replace(regX,("rgb(" + regX_$1 + "," + regX_$2 + "," + regX_$3 + ")" + regX_$4));
      }
    //alert("]" + cssText + "[");
      versions.rgb = cssText; // "cssText"-basis !!

regX = /rgb\s*(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*)/i;
      while (regX.test(cssText)) {
        regX.exec(cssText);
        regX_$1 = parseInt(RegExp.$1).toString(16);regX_$1 = ((regX_$1.length == 1) ? ("0" + regX_$1) : (regX_$1));
        regX_$2 = parseInt(RegExp.$2).toString(16);regX_$2 = ((regX_$2.length == 1) ? ("0" + regX_$2) : (regX_$2));
        regX_$3 = parseInt(RegExp.$3).toString(16);regX_$3 = ((regX_$3.length == 1) ? ("0" + regX_$3) : (regX_$3));
        cssText = cssText.replace(regX,("#" + regX_$1 + regX_$2 + regX_$3));
      }
    //alert("]" + cssText + "[");
      versions.hex = cssText;

cssText = versions.rgb;
      while (regX.test(cssText)) {
        regX.exec(cssText);
        regX_$1 = parseInt(RegExp.$1).toString(16);regX_$1 = ((regX_$1.length == 1) ? ("0" + regX_$1) : (regX_$1));
        regX_$2 = parseInt(RegExp.$2).toString(16);regX_$2 = ((regX_$2.length == 1) ? ("0" + regX_$2) : (regX_$2));
        regX_$3 = parseInt(RegExp.$3).toString(16);regX_$3 = ((regX_$3.length == 1) ? ("0" + regX_$3) : (regX_$3));
        if ((regX_$1.charAt(0) == regX_$1.charAt(1)) && (regX_$2.charAt(0) == regX_$2.charAt(1)) && (regX_$3.charAt(0) == regX_$3.charAt(1))) {
          cssText = cssText.replace(regX,("#" + regX_$1.charAt(0) + regX_$2.charAt(0) + regX_$3.charAt(0)));
        } else {
          cssText = cssText.replace(regX,("#" + regX_$1 + regX_$2 + regX_$3));
        }
      }
    //alert("]" + cssText + "[");
      versions.half = cssText;
    }
    return versions;
  };

var x = "border: 1px   dotted  #fc0  ;   BACKGROUND-COLOR  : RGB ( 30, 144 ,255 ); color : #f0e68c";
  var y = x.getColorVersions();
  if (y) {
    alert("x = " + x + "\n\ny.rgb = " + y.rgb + "\n\ny.hex = " + y.hex + "\n\ny.half = " + y.half);
  } else {
    alert("x = " + x + "\n\ny = " + y);
  }
  x = "border: 1px dotted; padding: 2px 5px 3px 5px";
  y = x.getColorVersions();
  if (y) {
    alert("x = " + x + "\n\ny.rgb = " + y.rgb + "\n\ny.hex = " + y.hex + "\n\ny.half = " + y.half);
  } else {
    alert("x = " + x + "\n\ny = " + y);
  }

viel spass und by(t)e by(t)e - peterS. - pseliger@gmx.net

--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)