• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

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
Eclipse IDE MySQL Database Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 42967
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic