programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering OS Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# Hi, I want to color byte array of image pixels with any color say Color(25,25,50). please help.

Surajsingh Thakur
Ranch Hand
Posts: 124
Hi All,
I want to color byte array of image pixels with any color say Color(25,25,50) preserving intensity of the original color.
Formula to calculate intensity of color: 0.3*R + 0.59*G + 0.11*B

Suppose current color of a image pixel is Color(50,25,23).
i.e.
current color - Red part - 50, Green part - 25 & blue part - 23.
apply color - Red part - 25, Green part - 25 & blue part - 50.

if I use bitwise AND opration I will get
Red part - 25, Green part - 25 & blue part - 23. ie. Color(25,25,23). thus intensity changes.
As you can see apply color has blue part prominant that means the end result should be some shade of blue with same intensity as the current color.
Can anybody give me exact formula or logic for this.

Ulf Dittmer
Rancher
Posts: 42972
73
Look like you need to solve the equation

0.3*R_new + 0.59*G_new + 0.11*B_new = 0.3*R_old + 0.59*G_old + 0.11*B_old

If you change just the B value from 23 to 59 then that reduces to something like

0.3*R_new + 0.59*G_new = 26.78

Pick any acceptable new value for R_new or G_new, and the other can be calculated.

 Consider Paul's rocket mass heater.