Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

## perl-win32-gui-users

 [perl-win32-gui-users] Convert DEC RGB to HEX From: Dean Lennox - 2003-03-10 11:56:29 Attachments: Message as HTML ```From the win32 gui example colors.gpl \$color = GUI::ChooseColor(-owner => \$w); Any idea how I can convert the decimal RGB value, \$color to the HTML HEX format ? ie: selecting the colour green returns 65280 How do I convert this to the HTML HEX value: #00FF00 ? Thanks! --------------------------------- Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, and more```
 Re: [perl-win32-gui-users] Convert DEC RGB to HEX From: Jonathan Southwick - 2003-03-10 14:24:56 Attachments: Message as HTML ```If you know your hexadecimal to decimal conversions, and decimal to hexadecimal, it's easy: To begin we need to undertsand that #00FF00 separates to: Hex color Dec === ===== === 00 red 0 FF green 255 00 blue 0 we get 255 because the characters 0 - 9 and A - F are used in hexidecimal notation. The numbers 0 - 9 in hexadecimal represent their correspnding values in decimal. The letters A - F in hexadecimal represent the numbers 10 - 15 in decimal respectively. The units in hexadecimal are base 16 so starting at the right and working toward the left you have 1's (16 raised to the power of 0; i.e. 16^0), 16's (16 raised to the power of 1; 16^1), 256's (16 raised to the power of 2; 16^2), 4096 (16 raised to the power of 4; 16^4), etc. for hexidecimal just as in decimal it is (starting from the right) 1's (10^0), 10's (10^1), 100's (10^2), 1000's (10^3), etc. Therefore FF in hexidecimal is (15 * 1) + (15*16) = 255 in decimal. Using this idea you do the same thing for converting the decimal number 65280 into the hexadecimal representation but work backwards. Also instead of working in base 16 you are working in base 256 with each pair of hexadecimal numbers. Also you are working from left to right. The "red column" is 1's (256^0), the "green column" is 256's (256^1), and the "blue column" is 25536's (256^2). In your example 00 (red) in hex is 0 in decimal so we have (0 * 1 = 0), next you have FF (green) in hex is 255 in decimal so we have (256 * 255 = 65280), and finally 00 (blue) in hex is 0 in decimal so we have (0 * 65536 = 0). Putting this altogether you have 0 + 65280 + 0 = 65280. Of course you wanted to know how to convert the other way. This is just as easy. You just work with the opposite idea. You had 65280 so you divide by the highest possible power which is 65536, the result is 0.99609375, the integer portion is 0 so we know we have 0 for the blue column, then you subtract the inter value you receive (in this case 0) and we are still left with 0.99609375, which we multiply by the next highest power (256) and we get 255 for our green column, then you subtract the integer value from the result (255 - 255 = 0), and the result is the red columns value. Of course all the values you get are in decimal so you will need to convert these smaller values into their hexadecimal equivalents: 0 -> 0, 255 -> FF, 0 -> 0 and join these values together: 00FF00. It's pretty simple if you understand powers and bases. If you want I could write a little script that would do the conversion for you but I thought I would explain how the result is achieved so that you can understand it better. This whole description might be a little confusing so if anyone can explain it better or has an easier way to do the conversion please go ahead and post it. Jonathan ======================== Jonathan Southwick jsouthwi@... Technical & Network Services Allegheny College Meadville, PA 16335 (814) 332-2755 At 3/10/2003 03:56 AM, you wrote: > From the win32 gui example colors.gpl > >\$color = GUI::ChooseColor(-owner => \$w); > >Any idea how I can convert the decimal RGB value, \$color to the HTML HEX >format ? > >ie: selecting the colour green returns 65280 How do I convert this to the >HTML HEX value: #00FF00 ? > > > >Thanks! > > > >Do you Yahoo!? >Yahoo! >Tax Center - forms, calculators, tips, and more ```
 Re: [perl-win32-gui-users] Convert DEC RGB to HEX From: Jonathan Southwick - 2003-03-10 15:16:18 Attachments: Message as HTML ```Oops. I meant 16 raised to the power of 3 for 4096 NOT 16^4 ... sorry for any confusion. Also one other mistake I made: When subtracting the integer portion of the "green column" you are not left with the value of the "red cilumn", you still need to multiply by 256. I think those are my only mistakes ... [I hope!]. Jonathan ======================== Jonathan Southwick jsouthwi@... Technical & Network Services Allegheny College Meadville, PA 16335 (814) 332-2755 At 3/10/2003 09:24 AM, you wrote: >If you know your hexadecimal to decimal conversions, and decimal to >hexadecimal, it's easy: > >To begin we need to undertsand that #00FF00 separates to: > >Hex color Dec >=== ===== === >00 red 0 >FF green 255 >00 blue 0 > >we get 255 because the characters 0 - 9 and A - F are used in hexidecimal >notation. The numbers 0 - 9 in hexadecimal represent their correspnding >values in decimal. The letters A - F in hexadecimal represent the numbers >10 - 15 in decimal respectively. The units in hexadecimal are base 16 so >starting at the right and working toward the left you have 1's (16 raised >to the power of 0; i.e. 16^0), 16's (16 raised to the power of 1; 16^1), >256's (16 raised to the power of 2; 16^2), 4096 (16 raised to the power of >4; 16^4), etc. for hexidecimal just as in decimal it is (starting from the >right) 1's (10^0), 10's (10^1), 100's (10^2), 1000's (10^3), >etc. Therefore FF in hexidecimal is (15 * 1) + (15*16) = 255 in decimal. > >Using this idea you do the same thing for converting the decimal number >65280 into the hexadecimal representation but work backwards. Also >instead of working in base 16 you are working in base 256 with each pair >of hexadecimal numbers. Also you are working from left to right. The >"red column" is 1's (256^0), the "green column" is 256's (256^1), and the >"blue column" is 25536's (256^2). In your example 00 (red) in hex is 0 in >decimal so we have (0 * 1 = 0), next you have FF (green) in hex is 255 in >decimal so we have (256 * 255 = 65280), and finally 00 (blue) in hex is 0 >in decimal so we have (0 * 65536 = 0). Putting this altogether you have 0 >+ 65280 + 0 = 65280. > >Of course you wanted to know how to convert the other way. This is just >as easy. You just work with the opposite idea. You had 65280 so you >divide by the highest possible power which is 65536, the result is >0.99609375, the integer portion is 0 so we know we have 0 for the blue >column, then you subtract the inter value you receive (in this case 0) and >we are still left with 0.99609375, which we multiply by the next highest >power (256) and we get 255 for our green column, then you subtract the >integer value from the result (255 - 255 = 0), and the result is the red >columns value. Of course all the values you get are in decimal so you >will need to convert these smaller values into their hexadecimal >equivalents: 0 -> 0, 255 -> FF, 0 -> 0 and join these values together: >00FF00. > >It's pretty simple if you understand powers and bases. > >If you want I could write a little script that would do the conversion for >you but I thought I would explain how the result is achieved so that you >can understand it better. > >This whole description might be a little confusing so if anyone can >explain it better or has an easier way to do the conversion please go >ahead and post it. > > >Jonathan >======================== >Jonathan Southwick >jsouthwi@... >Technical & Network Services >Allegheny College >Meadville, PA 16335 >(814) 332-2755 > > > >At 3/10/2003 03:56 AM, you wrote: > >> From the win32 gui example colors.gpl >> >>\$color = GUI::ChooseColor(-owner => \$w); >> >>Any idea how I can convert the decimal RGB value, \$color to the HTML HEX >>format ? >> >>ie: selecting the colour green returns 65280 How do I convert this to the >>HTML HEX value: #00FF00 ? >> >> >> >>Thanks! >> >> >> >>Do you Yahoo!? >>Yahoo! >>Tax Center - forms, calculators, tips, and more ```
 Re: [perl-win32-gui-users] Convert DEC RGB to HEX From: Glenn Linderman - 2003-03-10 19:14:34 ```On approximately 3/10/2003 3:56 AM, came the following characters from the keyboard of Dean Lennox: > From the win32 gui example colors.gpl > > \$color = GUI::ChooseColor(-owner => \$w); > > Any idea how I can convert the decimal RGB value, \$color to the HTML HEX > format ? > > ie: selecting the colour green returns 65280 How do I convert this to > the HTML HEX value: #00FF00 ? \$color = 65280; # or \$color = GUI::ChooseColor(-owner => \$w); \$html_hex = sprintf ( '#%06.6x', \$color ); print \$html_hex -- Glenn ===== If the grass is greener on the other side of the fence, try taking better care of your own side. -- Unknown ```