[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now


How to convert 8-bit GrayScale to RGB format (and have it still "look" gray!!!)?

Posted on 2004-11-02
Medium Priority
Last Modified: 2008-01-09

  I have an image processing app that I am working on and ran into a snag trying to convert from 8-bit grayscale to RGB. The reason I want to do this is so that I can store my image data in the format that I want to use (.XPM).

  I noticed alot of people are asking this same question but are coming from the standpoint of wanting to add color to grayscale image. Think Turner broadcast colorization of an old western or something. I don't want this at all. I want my RGB equivalent image to look exactly like my grayscale image.

  My input is gray values between 0->FF (0-255).
  My output is RGB of the gray value (3 values between 0->FF (0-255))

  For example, I know that white is FF in grayscale. After the conversion it should be R=FF, G=FF, B=FF in RBG format. Likewise black is 00: it should be R=00, G=00, B=00. But how do I convert the other 254 values?

  Is this possible? Does anyone know the conversion formula?


Question by:sapbucket
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 18

Accepted Solution

kandura earned 2000 total points
ID: 12472385
you could set all channels to the same value. So gray E0 would become rgb (E0,E0,E0).
LVL 10

Expert Comment

ID: 12473437
GRAY=0.299R + 0.587G + 0.114B
LVL 18

Expert Comment

ID: 12473589
and (x,x,x) would be a fine solution to that ;)
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

LVL 12

Expert Comment

ID: 12474256
Hi rj2,
Wrong conversion direction :-)
LVL 10

Expert Comment

ID: 12475906
Hi all
sapbucket asked for conversion formula, so I posted conversion formula.
The formula at least demonstrates why gray scale conversion is a one way process. Information is lost about along the way, there are many combinations of R,G,B that satisfies the equation.

Author Comment

ID: 12478678

  perfect answer!

  I don't know why I didn't try that myself. I experimented with using the gray scale value and 0's - so like 255, 255, 0 or 0, 255, 0 - which just gives you pure color tones. Thanks for the help!

  Does cpan have a perl module that specializes in image processing of 8-bit values? Seems weird that I have to triple the file size (1 byte translates to 3 bytes) just to store the image on disk. At least that is using .pbm or .xpm.


Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have been pestered over the years to produce and distribute regular data extracts, and often the request have explicitly requested the data be emailed as an Excel attachement; specifically Excel, as it appears: CSV files confuse (no Red or Green h…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question