Hey Brent, Do you mind adding a note in ChangeLog.txt for that?
Thanks, Glenn ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, December 04, 2002 5:11 PM Subject: [DQSD-CVS] dqsd/searches rgb.xml,1.5,1.6 > 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/ ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ DQSD-Devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dqsd-devel
