11#include " BitmapHelper.h"
22
3- #pragma region Pixel Color
4- inline int PixClr (int val)
3+ bool IterateBitmap (HBITMAP hbm, BitmapPixelHandler handler)
54{
6- return val & 0xFFFFFF ;
7- }
8-
9- inline int PixR (BYTE* pPixel)
10- {
11- return PixClr (pPixel[2 ]);
12- }
13- inline int PixG (BYTE* pPixel)
14- {
15- return PixClr (pPixel[1 ]);
16- }
17- inline int PixB (BYTE* pPixel)
18- {
19- return PixClr (pPixel[0 ]);
20- }
21- inline int PixA (BYTE* pPixel)
22- {
23- return PixClr (pPixel[3 ]);
24- }
25- #pragma endregion
26-
27- bool RecolorizeBitmap (HBITMAP hbm, BitmapHandler handler) {
285 BITMAP bm;
296 GetObject (hbm, sizeof (bm), &bm);
307
@@ -36,16 +13,20 @@ bool RecolorizeBitmap(HBITMAP hbm, BitmapHandler handler) {
3613 BYTE* pBits = new BYTE[bm.bmWidth * bm.bmHeight * 4 ];
3714 GetBitmapBits (hbm, bm.bmWidth * bm.bmHeight * 4 , pBits);
3815
39- for (int y = 0 ; y < bm.bmHeight ; y++)
16+ BYTE* pPixel;
17+ int x, y;
18+ int r, g, b, a;
19+
20+ for (y = 0 ; y < bm.bmHeight ; y++)
4021 {
41- BYTE* pPixel = pBits + bm.bmWidth * 4 * y;
22+ pPixel = pBits + bm.bmWidth * 4 * y;
4223
43- for (int x = 0 ; x < bm.bmWidth ; x++)
24+ for (x = 0 ; x < bm.bmWidth ; x++)
4425 {
45- int r = PixR ( pPixel); // [2]
46- int g = PixG ( pPixel); // [1]
47- int b = PixB ( pPixel); // [0]
48- int a = PixA ( pPixel); // [3]
26+ r = pPixel[2 ] & 0xFFFFFF ;
27+ g = pPixel[1 ] & 0xFFFFFF ;
28+ b = pPixel[0 ] & 0xFFFFFF ;
29+ a = pPixel[3 ] & 0xFFFFFF ;
4930
5031 handler (r, g, b, a);
5132
0 commit comments