Win a copy of Practical SVG this week in the HTML/CSS/JavaScript forum!
  • 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
Posts: 42970
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.
 
And tomorrow is the circus! We can go to the circus! I love the circus! We can take this tiny ad:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/Thread-Boost-feature
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!