SHARE
TWEET

Gdip_FilterColor

tic Nov 19th, 2012 87 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int Gdip_FilterColor(unsigned char * Bitmap, int w, int h, int Stride, unsigned int Color, unsigned int ReplaceColor, int v)
  2. {
  3.         unsigned int p, A1, R1, G1, B1, A2, R2, G2, B2, tA, tR, tG, tB;
  4.  
  5.         A1 = (Color & 0xff000000) >> 24;
  6.         R1 = (Color & 0x00ff0000) >> 16;
  7.         G1 = (Color & 0x0000ff00) >> 8;
  8.         B1 = Color & 0x000000ff;
  9.  
  10.         A2 = (ReplaceColor & 0xff000000) >> 24;
  11.         R2 = (ReplaceColor & 0x00ff0000) >> 16;
  12.         G2 = (ReplaceColor & 0x0000ff00) >> 8;
  13.         B2 = ReplaceColor & 0x000000ff;
  14.  
  15.         for (int y = 0; y < h; ++y)
  16.         {
  17.                 for (int x = 0; x < w; ++x)
  18.                 {
  19.                         p = (4*x)+(y*Stride);
  20.  
  21.                         tA = Bitmap[3+p];
  22.                         tR = Bitmap[2+p];
  23.                         tG = Bitmap[1+p];
  24.                         tB = Bitmap[p];
  25.                        
  26.                         if ((tA <= A1+v && tA >= A1-v) && (tR <= R1+v && tR >= R1-v) && (tG <= G1+v && tG >= G1-v) && (tB <= B1+v && tB >= B1-v))
  27.                         {
  28.                                 Bitmap[3+p] = A2;
  29.                                 Bitmap[2+p] = R2;
  30.                                 Bitmap[1+p] = G2;
  31.                                 Bitmap[p] = B2;
  32.                         }
  33.                        
  34.                 }
  35.         }
  36.         return 0;
  37. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top