Advertisement
tic

Gdip_FilterColor

tic
Nov 19th, 2012
369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. pToken := Gdip_Startup()
  2. pBitmap := Gdip_CreateBitmapFromFile("input.png")
  3. E := Gdip_FilterColor(pBitmap, 0xff00ff00, 0xff0000ff, 100)
  4. Gdip_SaveBitmapToFile(pBitmap, "output.png")
  5. Gdip_DisposeImage(pBitmap)
  6. Gdip_Shutdown(pToken)
  7. return
  8.  
  9. Gdip_FilterColor(pBitmap, Color, ReplaceColor, Variation=0)
  10. {
  11.     static _FilterColor
  12.     if !_FilterColor
  13.     {
  14.         MCode_FilterColor := "83EC288B44243C8BC8C1E918894C243C8BC8C1E91081E1FF000000894C240C0FB6CC25FF000000894C2410894424148B442440"
  15.         . "8BC8C1E918894C24188BC80FB6D425FF000000C1E910894424248B44243481E1FF00000085C0894C241C895424200F8E020100008B54242C5355568B7"
  16.         . "4245033DB578B7C2440895C241489442418B90100000085FF0F8EC10000008D4A028D040B8BDA2BD983C303895C24508BDA2BD983C301895C24442BD1"
  17.         . "897C24108B5C24448B4C24500FB62C030FB60C018B5C244C0FB63803DE3BCB7F688B5C244C2BDE3BCB7C5E8B4C241C8D1C313BFB7F532BCE3BF97C4D8"
  18.         . "B4C24208D3C313BEF7F422BCE3BE97C3C8B7C24240FB60C028D1C373BCB7F2D2BFE3BCF7C270FB64C24288B7C2450880C070FB64C242C8B7C24448808"
  19.         . "0FB64C2430880C070FB64C2434880C02B90100000083C004294C24100F8569FFFFFF8B7C24408B54243C8B5C2414035C2448294C2418895C24140F852"
  20.         . "1FFFFFF5F5E5D5B33C083C428C3"
  21.        
  22.         VarSetCapacity(_FilterColor, StrLen(MCode_FilterColor)//2)
  23.         Loop % StrLen(MCode_FilterColor)//2   ;%
  24.             NumPut("0x" SubStr(MCode_FilterColor, (2*A_Index)-1, 2), _FilterColor, A_Index-1, "char")
  25.     }
  26.    
  27.     Variation := (Variation > 255) ? 255 : (Variation < 0) ? 0 : Variation
  28.     Gdip_GetImageDimensions(pBitmap, w, h)
  29.     E1 := Gdip_LockBits(pBitmap, 0, 0, w, h, Stride1, Scan01, BitmapData1)
  30.     E := DllCall(&_FilterColor, "uint", Scan01, "int", w, "int", h, "int", Stride1, "uint", Color, "uint", ReplaceColor, "int", Variation)
  31.     Gdip_UnlockBits(pBitmap, BitmapData1)
  32.     return (E = "") ? -1 : E
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement