Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 894
  • Last Modified:

Accessing Individual Pixels From A HBITMAP

Hi

I have a HBITMAP, for which i would like to be able access inidividual pixel's RGB values .

How do i go about this?


The bits per pixel for the bitmap, isn't known its loaded by the user.

Cheers

Rich
0
RichJackson
Asked:
RichJackson
  • 2
1 Solution
 
FengYuanCommented:
1) Use GetDIBits to convert it to a DIB and then read the pixels
2) Select into a memory DC, and then use GetPixel to read
0
 
MichaelSCommented:
You can create a memory DC, select your bitmap to it and than use functions GetPixel() and SetPixel(). But if you interested in speed than you will be disappointed :( This approach is easy to do but quite slow.

HDC hdc = CreateCompatibleDC(NULL);
SelectObject(hdc, hBitmpa);
COLORREF cr = GetPixel(hdc, 10, 10);

this code will give you RGB value of pixel (10, 10) in your bitmap.
0
 
RichJacksonAuthor Commented:
Hmmm, I am interested in the speed.  What's my other options.
0
 
MichaelSCommented:
Than you have to go for GetDIBits() approach, you will get pointer to bitmap data itself. Than you have to analize which type of bitmap (actually DIB) are you diling with, colors, size and .... Than you can use direct pointers.

Take a look at
http://www.codeguru.com/bitmap/rotate_bitmap.shtml

and actually at
http://www.codeguru.com/bitmap
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now