Fast Bitmap Conversion

I need a fast, reliable way of converting a 24-bit bitmap created by BitBlt() into a 8-bit grey-scale bitmap. If I try to use BitBlt() and capture an 8-bit image on a 24-bit screen, the image captured is *rubbish*. So I capture in 24-bit and I want to convert this image into 8-bit greyscale (pref. using the same type of RGB palette each time i.e. 0=white, 255=black, all numbers in between shades of grey). Code would be appreciated (c pref.) Thanx a lot,
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Download the following sample. Look into the dib.h and dib.c. You can use the ChangeDIBFormat and ChangeDIBPalette functions. You may need to create a grey scale palette yourself. You may also need to use the DIBFromBitmap and BitmapFromDIB functions.

SeedIB.exe Shows 16 and 32 Bits-Per-Pel Bitmap Formats

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
If you just want RGB to grayscale, do this for each pixel:

  Y = 0.299*R + 0.587*G + 0.114*B

This way of calculating grayscale from RGB is used by TVs. In case you're wondering, color TV signal has a black-and-white channel and two other color channels, this way B&W TV sets can display color TV signals (only the black-and-white channel).

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Development

From novice to tech pro — start learning today.