View the DQSD CVS repository here:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/
Update of /cvsroot/dqsd/dqsd/searches
In directory sc8-pr-cvs1:/tmp/cvs-serv21682/searches
Modified Files:
rgb.xml
Log Message:
updated rgb to take hex values as well as more lenient decimal formats
also show HSL values too
Index: rgb.xml
===================================================================
RCS file: /cvsroot/dqsd/dqsd/searches/rgb.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** rgb.xml 30 Aug 2002 03:24:56 -0000 1.5
--- rgb.xml 4 Dec 2002 23:11:38 -0000 1.6
***************
*** 2,53 ****
<name>RGB to Hexadecimal Conversion</name>
<description>
! Convert RGB integer values to hexadecimal equivalents.<br/>
! <div class="helpboxDescLabels">Example:</div>
<table class="helpboxDescTable">
! <tr><td>rgb 255110053</td></tr>
</table>
</description>
<category>Functions</category>
! <contributor>Monty Scroggins</contributor>
<script><![CDATA[
! function remleadzeros(str)
{
! while (str.charAt(0) == "0" && str.length > 1) // if has leading zero (but not
just "0")
! str= str.substring(1, str.length); // remove any leading zeros (otherwise
assumes octal)
! return(parseInt(str));
! }
! function rgb(c)
! {
! if( nullArgs("rgb",c) )
return false;
!
! if (c.length<9 || c.match(/\D/))
! {
alert("Red Green and Blue values must be between 0 and 255\nwith leading
zeros if needed.\nex - 255034101 = r255 g034 b101");
return false;
}
!
! //var red=parseInt(c.substr(0,3));
! var red=c.substr(0,3);
! var grn=c.substr(3,3);
! var blu=c.substr(6,3);
! red=remleadzeros(red);
! grn=remleadzeros(grn);
! blu=remleadzeros(blu);
! red=red.toString(16);
! grn=grn.toString(16);
! blu=blu.toString(16);
!
! if (red.length <2)
! red = "0" + red;
! if (grn.length <2)
! grn = "0" + grn;
! if (blu.length <2)
! blu = "0" + blu;
!
! //document.deff.q.value ="red "+red+" green "+grn+" blue "+blu;
! document.deff.q.value ="RGB: "+c+" Hex: "+red+grn+blu;
}
]]></script>
--- 2,169 ----
<name>RGB to Hexadecimal Conversion</name>
<description>
! Convert RGB integer values to hexadecimal equivalents and vice versa.<br/>
! <div class="helpboxDescLabels">Examples:</div>
<table class="helpboxDescTable">
! <tr><td>rgb 255110053</td><td> - </td><td>Convert decimal rgb number
to hex</td></tr>
! <tr><td>rgb 255 110 53</td><td> - </td><td>Convert decimal rgb number
to hex</td></tr>
! <tr><td>rgb 255,110,53</td><td> - </td><td>Convert decimal rgb number
to hex</td></tr>
! <tr><td>rgb 255.110.53</td><td> - </td><td>Convert decimal rgb number
to hex</td></tr>
! <tr><td>rgb 336666</td><td> - </td><td>Convert hex rgb number to
decimal</td></tr>
! <tr><td>rgb #336666</td><td> - </td><td>Convert hex rgb number to
decimal</td></tr>
! <tr><td>rgb 0x336666</td><td> - </td><td>Convert hex rgb number to
decimal</td></tr>
</table>
</description>
<category>Functions</category>
! <contributor>Monty Scroggins, Brent Beardsley</contributor>
<script><![CDATA[
! function rgb(q)
{
! if (nullArgs("rgb",q))
! return false;
! var red = -1;
! var grn = -1;
! var blu = -1;
!
! if ( (r = q.match(/^\s*(\d{3})(\d{3})(\d{3})\s*$/)) != null) {
! // specified in decimal
! red = parseInt(r[1], 10);
! grn = parseInt(r[2], 10);
! blu = parseInt(r[3], 10);
! } else if ( (r =
q.match(/^\s*(\#|0x)?([\dA-Fa-f]{2})([\dA-Fa-f]{2})([\dA-Fa-f]{2})\s*$/)) != null) {
! // specified in hex
! // r[1] is the hex prefix
! red = parseInt(r[2], 16);
! grn = parseInt(r[3], 16);
! blu = parseInt(r[4], 16);
! } else if ( (r = q.match(/^\s*(\d+)\W+(\d+)\W+(\d+)\s*$/)) != null) {
! // specified in decimal separated by non-digits
! red = parseInt(r[1], 10);
! grn = parseInt(r[2], 10);
! blu = parseInt(r[3], 10);
! } else {
! // unknown format - show help
! nullArgs("rgb", "?");
return false;
! }
! if (red < 0 || red > 255 || grn < 0 || grn > 255 || blu < 0 || blu > 255) {
! // invalid rgb values
alert("Red Green and Blue values must be between 0 and 255\nwith leading
zeros if needed.\nex - 255034101 = r255 g034 b101");
return false;
}
!
! var hsl = rgb_to_hsl(red, grn, blu);
! var rgbString = "RGB: "+red + " " + grn + " " + blu;
! var hexString = "Hex: "+
! ((red < 16) ? "0" : "") + red.toString(16).toUpperCase() +
! ((grn < 16) ? "0" : "") + grn.toString(16).toUpperCase() +
! ((blu < 16) ? "0" : "") + blu.toString(16).toUpperCase();
! var hslString = "HSL: "+ hsl[0] + " "+hsl[1]+" "+hsl[2];
! document.deff.q.value =rgbString+" "+hexString+" "+hslString;
! }
!
! // hsl functions adapted from
http://support.microsoft.com/default.aspx?scid=KB;en-us;q29240
! // Brent Beardsley 4 Dec 2002
! function rgb_to_hsl(r, g, b)
! {
! var HSLMAX = 255;
! var RGBMAX = 255;
!
! var h = -1.0;
! var s = -1.0;
! var l = -1.0;
!
! var max = Math.max(Math.max(r,g), b);
! var min = Math.min(Math.min(r,g), b);
! var delta = max-min;
!
! l = Math.round( (max+min)*HSLMAX / (2*RGBMAX) );
! if (max == min) {
! s = 0.0;
! h = NaN;
! } else {
! if (l <= Math.floor(HSLMAX/2)) {
! s = Math.round((delta*HSLMAX) / (max+min));
! } else {
! s = Math.round((delta*HSLMAX) / (2*RGBMAX-max-min));
! }
! var rdelta = Math.round((max-r)*Math.floor(HSLMAX/6) / delta);
! var gdelta = Math.round((max-g)*Math.floor(HSLMAX/6) / delta);
! var bdelta = Math.round((max-b)*Math.floor(HSLMAX/6) / delta);
!
! if (r == max) {
! h = bdelta - gdelta;
! } else if (g == max) {
! h = Math.floor(HSLMAX/3) + rdelta - bdelta;
! } else {
! h = Math.floor((2*HSLMAX)/3) + gdelta - rdelta;
! }
! if (h < 0) {
! h += HSLMAX;
! } else if (h > HSLMAX) {
! h -= HSLMAX;
! }
! }
! // alert("h: "+h+", s: "+s+", l: "+l);
! return new Array(Math.round(h), Math.round(s), Math.round(l));
! }
!
! function hue_to_rgb(n1, n2, hue)
! {
! var HSLMAX = 255;
! var RGBMAX = 255;
!
! if (hue < 0)
! hue += HSLMAX;
!
! if (hue > HSLMAX)
! hue -= HSLMAX;
!
! if (hue < Math.floor(HSLMAX/6)) {
! // alert("hue_to_rgb: 1");
! return ( n1 + Math.round( (n2-n1)*hue/Math.floor(HSLMAX/6)));
! } else if (hue < Math.floor(HSLMAX/2)) {
! // alert("hue_to_rgb: 2");
! return n2;
! } else if (hue < Math.floor((HSLMAX*2)/3)) {
! // alert("hue_to_rgb: 3");
! return ( n1 + Math.round((n2-n1)*(((HSLMAX*2)/3)-hue)/Math.floor(HSLMAX/6))
);
! } else {
! // alert("hue_to_rgb: 4");
! return n1;
! }
! }
!
! function hsl_to_rgb(h, s, l)
! {
! var HSLMAX = 255;
! var RGBMAX = 255;
!
! var r = NaN;
! var g = NaN;
! var b = NaN;
! var magic1 = NaN;
! var magic2 = NaN;
!
! if (s == 0) {
! r = (l*RGBMAX)/HSLMAX;
! g = (l*RGBMAX)/HSLMAX;
! b = (l*RGBMAX)/HSLMAX;
! } else {
! if (l <= Math.floor(HSLMAX/2)) {
! magic2 = Math.round(l*(HSLMAX + s) / HSLMAX);
! } else {
! magic2 = l+s - Math.round((l*s)/HSLMAX);
! }
! magic1 = 2*l-magic2;
!
! r = Math.round(hue_to_rgb(magic1, magic2,
h+Math.floor(HSLMAX/3))*RGBMAX/HSLMAX);
! g = Math.round(hue_to_rgb(magic1, magic2, h)*RGBMAX/HSLMAX);
! b = Math.round(hue_to_rgb(magic1, magic2,
h-Math.floor(HSLMAX/3))*RGBMAX/HSLMAX);
!
! }
! // alert("r: "+r+", g: "+g+", b: "+b);
! return new Array(r,g,b);
}
]]></script>
-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET
comprehensive development tool, built to increase your
productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
DQSD-CVS mailing list
https://lists.sourceforge.net/lists/listinfo/dqsd-cvs
DQSD CVS repository:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/