Advertisement
UEZ

GDI+ Flood Fill Example

UEZ
Jul 15th, 2014
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 4.14 KB | None | 0 0
  1. #include <Memory.au3>
  2. #include  "_GDIPlus_FloodFillIter.au3"
  3.  
  4. _GDIPlus_Startup()
  5. $hImage = _GDIPlus_BitmapCreateFromMemory(_Test_Image())
  6.  
  7. Global $t = TimerInit()
  8. ConsoleWrite(_GDIPlus_FloodFillIter3($hImage, 197, 203, 0xFFFFFFFF, 0xFFFF0000) & ", " & @error & @CRLF)
  9. ;~ _GDIPlus_FloodFillIter2($hImage, $oD, 197, 203, 0xFFFFFFFF, 0xFFFF0000)
  10. ConsoleWrite("Runtime: " & Round(TimerDiff($t), 2) & " ms." & @CRLF)
  11. If FileExists(@ScriptDir & "\Filled.gif") Then FileDelete(@ScriptDir & "\Filled.gif")
  12. _GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\Filled.gif")
  13. _GDIPlus_BitmapDispose($hImage)
  14. _GDIPlus_Shutdown()
  15. ShellExecute(@ScriptDir & "\Filled.gif")
  16.  
  17. Exit
  18.  
  19. ;Code below was generated by: 'File to Base64 String' Code Generator v1.11 Build 2012-10-13
  20.  
  21. Func _Test_Image($bSaveBinary = False)
  22.     Local $Test_Image
  23.     $Test_Image &= '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'
  24.     $Test_Image &= 'twpjPAm9rHc/v0tfis7Fk9Dg/8i4f+5LTt5kXwcgyNRlV3IGTDtH6mzByRvbx8ZU9+3d7G5fuGvJ+S8PPfwkAFRwO6drtAIm1N24qTPcAFd0THj778sjA9iig5IhzbLWAqbumLDpvAN02WlYTPjCqbK7w8W79OvlcomOys7BS4R5ADAsjlF2HgwF8NNy07wtzlccEwYFMD8HAjuPZ9VBQSnA4+MyxJWMDFzN6TD3fGp/zhdbc2Yzua9zfpqaGzeT+x7mQ91N+eSO+zs1hyGf3Nzqblk1SRRVdeOm2rXRTZt7s2l0eAF42z6o7u75vdm3uk/CH1nGNjr8/TJgc26bUXL7R+mnDscvgOtw+Bfwe4/jy4X+7/8v63SnO93pTne6053udKc73en+DdpGLDuzH/m7AAAAAElFTkSuQmCC'
  25.     Local $bString = Binary(_Base64Decode($Test_Image))
  26.     If $bSaveBinary Then
  27.         Local $hFile = FileOpen(@ScriptDir & "\Test.png", 18)
  28.         FileWrite($hFile, $bString)
  29.         FileClose($hFile)
  30.     EndIf
  31.     Return  $bString
  32. EndFunc   ;==>_Test_Image
  33.  
  34. Func _Base64Decode($sB64String)
  35.     Local $struct = DllStructCreate("int")
  36.     Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $sB64String, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
  37.     If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
  38.     Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
  39.     $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $sB64String, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
  40.     If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
  41.     Return DllStructGetData($a, 1)
  42. EndFunc   ;==>_Base64Decode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement