UEZ

AutoIt Watermark Image v0.89 beta build 2015-07-10

UEZ
Nov 28th, 2012 (edited)
874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 236.39 KB | None | 0 0
  1. ;IMPORTANT: You are not allowed to sell this code or just parts of it in a commercial project or modify it and distribute it with a different name!
  2. ;Distributing copies of the program in compiled format (exe) must be free of any fee!
  3.  
  4. ;~ #AutoIt3Wrapper_Version=b
  5. #AutoIt3Wrapper_UseX64=n
  6. #AutoIt3Wrapper_Compile_Both=n
  7. #AutoIt3Wrapper_Icon=W 2.1.ico
  8. #AutoIt3Wrapper_Res_Field=CompanyName|UEZ Software Development
  9. #AutoIt3Wrapper_Res_Field=ProductName|AutoIt Watermark Image
  10. #AutoIt3Wrapper_Res_Field=ProductVersion|%AutoItVer%
  11. #AutoIt3Wrapper_Res_Fileversion=0.8.9.0
  12. #AutoIt3Wrapper_Res_Field=Build|2015-07-10
  13. #AutoIt3Wrapper_Res_LegalCopyright=UEZ Software Development
  14. #AutoIt3Wrapper_Res_Language=1033
  15. #AutoIt3Wrapper_Res_Field=URL|http://www.autoitscript.com/forum/index.php?showtopic=145873
  16. #AutoIt3Wrapper_Change2CUI=n
  17. #AutoIt3Wrapper_Run_Au3Stripper=y
  18. #Au3Stripper_Parameters=/so
  19. ;~ #Obfuscator_Parameters=/so /om
  20. #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
  21. #AutoIt3Wrapper_UseUpx=n
  22. #AutoIt3Wrapper_UPX_Parameters=--best --lzma
  23.  
  24. #include <Clipboard.au3>
  25. #include <Array.au3>
  26. ;~ #include <ButtonConstants.au3>;~~~
  27. #include <ComboConstants.au3>
  28. #include <Constants.au3>
  29. #include <EditConstants.au3>
  30. #include <GDIPlus.au3>
  31. #include <GuiButton.au3>
  32. #include <GUIConstantsEx.au3>
  33. #include <GuiMenu.au3>
  34. #include <Misc.au3>
  35. #include <SliderConstants.au3>
  36. #include <StaticConstants.au3>
  37. #include <UpDownConstants.au3>
  38. #include <WinAPISys.au3>
  39. #include <WindowsConstants.au3>
  40. #include "NoFocusLines.au3"
  41.  
  42. Break(0)
  43. Opt("MustDeclareVars", 1)
  44. Opt("GUICloseOnESC", 1)
  45. Opt("GUIOnEventMode", 0)
  46.  
  47. Global Const $sTitle = "AutoIt Watermark Image "
  48. Global Const $ver = "v0.89 beta build 2015-07-10"
  49.  
  50. If @OSBuild < 2600 Then Exit _WinAPI_ShowError($sTitle & @LF & @LF & "is not running on " & @OSVersion & " !!! :-(", False)
  51.  
  52. _GDIPlus_Startup()
  53. Global $hBmp = 0, $bW, $bH, $iGUI_MinW, $iGUI_MinH, $hGUI_WM
  54. Global Const $iW_Grp_WM = 722, $iH_Grp_WM = 468, $iGUI_W = 953, $iGUI_H = 703
  55. ;~ Global Const $STM_SETIMAGE = 0x0172
  56. Global $iW_Pic_WM = $iW_Grp_WM - 20, $iH_Pic_WM = $iH_Grp_WM - 30
  57. Global Const $iMinFontSize_WM = 4, $iMaxFontSize_WM = 256, $iRadius_Max_WM = 500, $iRadius_Min_WM = 8
  58. Global $hBitmap_WM, $hBitmapUndo_WM, $hBmp_Preview_WM, $hBitmapStamp_WM, $hBitmapStampPreview_WM, $iColorFont_WM = 0xFF0000, $sText_WM, $sFont_WM, $fAlpha_WM, $iFontSize_WM
  59. Global $iPos_WM, $iRadius_WM, $iRotation_WM, $idInputText_WM, $idComboFont_WM, $hComboFont_WM, $idInputOpaque_WM, $idInputFSize_WM, $idInputRadius_WM, $idInputDegree_WM, $idPicPreview_WM
  60. Global $idCheckboxCircular_WM, $idLabelRadius_WM, $idSliderRadius_WM, $idRadioUpperLeft_WM, $idRadioUpperMid_WM, $idRadioUpperRight_WM, $idRadioMidLeft_WM, $idRadioCenter_WM, $idUpdown_WM
  61. Global $hUpdown_WM, $idRadioMidRight_WM, $idRadioButtomLeft_WM, $idRadioButtomMid_WM, $idRadioButtomRight_WM, $idSliderDegree_WM, $hSliderDegree_WM, $idSliderOpaque_WM, $iGUI_WM_color = 0xF0F0F0
  62. Global $hSliderOpaque_WM, $hSliderRadius_WM, $idRadioImagePreview_WM, $idRadioColor_WM, $bStamp_WM = False, $hBitmap_Preview_WM, $hDC_WM, $hDC_backbuffer_WM, $DC_obj_WM, $hGraphic_WM
  63. Global $idRadioSaveJPG_WM, $idRadioSaveBMP_WM, $idRadioSavePNG_WM, $idSliderJPGQual_WM, $idRadioSaveTIF_WM, $idRadioSaveGIF_WM, $idInputJPGQual_WM, $hSliderJPGQual_WM, $idCheckboxFill_WM
  64. Global $idInputSavePath_WM, $idSliderAdjX_WM, $idSliderAdjY_WM, $hSliderAdjX_WM, $hSliderAdjY_WM, $idRadioTxtFXDefault_WM, $idButtonLoadFont_WM, $idButtonTPColor_WM, $iColorImgTP_WM = 0x000000
  65. Global $bUpdate_WM = False, $sFX_WM = "Default", $bDnD = False, $bResize = False, $bUndo = False, $__Enum
  66. Global $idButtonLoadImage_WM, $sFileImage_WM, $idButtonColor_WM, $idRadioTxtFXOutline_WM, $idRadioTxtFXOutlineFilled_WM, $idRadioTxtFXEmbossed_WM, $idLabelImgDimSize, $idButtonSaveImage_WM
  67. Global $idDummy_Resize, $idDummy_Clipboard, $idDummy_WinResized, $idDummy_Batch
  68. ;~ Global Const $tagGDIPCOLORMATRIX = "float m[25];"
  69. Global $hAttribute_Alpha = _GDIPlus_ImageAttributesCreate()
  70.  
  71. Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
  72. Global $sChkAero = DllStructCreate("int;")
  73. DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "ptr", DllStructGetPtr($sChkAero))
  74. Global $bAero = DllStructGetData($sChkAero, 1)
  75.  
  76. Global $iGUI_WM_color = 0xF0F0F0, $red, $green, $blue
  77.  
  78. If Not $bAero Then
  79.     $iGUI_WM_color = _WinAPI_GetSysColor($COLOR_BTNFACE)
  80.     $blue = Hex(BitShift($iGUI_WM_color, 16), 2)
  81.     $green = Hex(BitAND(BitShift($iGUI_WM_color, 8), 0xFF), 2)
  82.     $red = Hex(BitAND($iGUI_WM_color, 0xFF), 2)
  83.     $iGUI_WM_color = "0x" & $red & $green & $blue ;converted from BGR to RGB format
  84. EndIf
  85.  
  86. Global Enum $idResize_WM = 1000, $idClipboard_WM, $idBrowse_WM, $idBatch_WM
  87. Global Enum $id_ChkUpd = 1100, $id_VisitWeb, $id_About
  88. Global $idLabel_WM_SizeC, $idLabel_WM_SizeN, $idInput_WM_W, $idInput_WM_H, $idInput_WM_WP, $idInput_WM_HP, $idChkBox_WM_AR, $bFill = False, $bStoppMove = False
  89. Global $iPos_WM = 9, $sSaveType = "jpg", $iJPGQual_WM, $iColorFont_Embossed_WM = 0x000000, $iManPosX = 0, $iManPosY = 0, $iAdjX_WM = 0, $iAdjY_WM = 0
  90. Global Const $fRad = 180 / ACos(-1), $sFXs = "Default;Outlined;OutlinedFilled;Embossed;"
  91.  
  92. Global Const $tagTT_OFFSET_TABLE = "USHORT uMajorVersion;USHORT uMinorVersion;USHORT uNumOfTables;USHORT uSearchRange;USHORT uEntrySelector;USHORT uRangeShift"
  93. Global Const $tagTT_TABLE_DIRECTORY = "char szTag[4];ULONG uCheckSum;ULONG uOffset;ULONG uLength"
  94. Global Const $tagTT_NAME_TABLE_HEADER = "USHORT uFSelector;USHORT uNRCount;USHORT uStorageOffset"
  95. Global Const $tagTT_NAME_RECORD = "USHORT uPlatformID;USHORT uEncodingID;USHORT uLanguageID;USHORT uNameID;USHORT uStringLength;USHORT uStringOffset"
  96.  
  97. ;~ Global Const $sFonts = "Arial|Courier New|Impact|Lucida Console|Lucida Sans Unicode|Marlett|Palatino Linotype|Symbol|Tahoma|Times New Roman|Verdana|Webdings|Wingdings"
  98. Global Const $GDIP_LF_FACESIZE = 32
  99. Global $hFontCollection = _GDIPlus_FontCollectionCreate()
  100. Global $aFontFamilies = _GDIPlus_FontCollectionGetFamilyList($hFontCollection), $hFontFamily, $sFonts
  101. For $i = 1 To UBound($aFontFamilies) - 1
  102.     $hFontFamily = $aFontFamilies[$i]
  103.     $sFonts &= _GDIPlus_FontFamilyGetFamilyName($hFontFamily) & "|"
  104. Next
  105. $sFonts = StringTrimRight($sFonts, 1)
  106.  
  107. Global $bFontMan = False, $hCollection_WM, $sFileFont, $sFileFontName, $sAddFonts = ""
  108.  
  109. $hCollection_WM = DllCall($__g_hGDIPDll, 'int', 'GdipNewPrivateFontCollection', 'ptr*', 0)
  110. $hCollection_WM = $hCollection_WM[1]
  111.  
  112. If $CmdLine[0] Then Cmd()
  113.  
  114. Watermark()
  115.  
  116. Exit
  117.  
  118. Func Watermark()
  119.     #region GUI
  120. ;~  Local Const $hGUI_WM = GUICreate($sTitle, 953, 703, -1, -1, $GUI_SS_DEFAULT_GUI, $WS_EX_ACCEPTFILES)
  121. ;~  $hGUI_WM = GUICreate($sTitle & $ver, $iGUI_W, $iGUI_H, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP), $WS_EX_ACCEPTFILES)
  122.     $hGUI_WM = GUICreate($sTitle & $ver, $iGUI_W, $iGUI_H, -1, -1, BitXOR(BitOR($GUI_SS_DEFAULT_GUI, $WS_TABSTOP), $WS_MAXIMIZEBOX), $WS_EX_ACCEPTFILES)
  123.     GUISetFont(8, 400, 0, "Times New Roman")
  124.     GUISetBkColor($iGUI_WM_color, $hGUI_WM)
  125.     Local Const $idPicLogo_WM = GUICtrlCreatePic("", $iW_Grp_WM + 32, 14, 189, 161)
  126.  
  127.     Local Const $idGroupText_WM = GUICtrlCreateGroup(" Text Settings ", 16, 8, 337, 168)
  128.     $idInputText_WM = GUICtrlCreateInput("Watermarked by UEZ", 64, 26, 274, 23)
  129.     GUICtrlSetFont(-1, 9, 400, 0, "Times New Roman")
  130.     GUICtrlSetState(-1, $GUI_DISABLE)
  131.     Local Const $hInputText_WM = GUICtrlGetHandle($idInputText_WM)
  132.     Local Const $sInputTextNN = _WinAPI_GetClassName($hInputText_WM) & _GetNN($hInputText_WM)
  133.     Local Const $idLabelText_WM = GUICtrlCreateLabel("Text", 24, 25, 31, 23)
  134.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  135.     Local Const $idLabelFont_WM = GUICtrlCreateLabel("Font", 24, 59, 29, 19)
  136.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  137.     $idComboFont_WM = GUICtrlCreateCombo("", 64, 58, 193, 25, BitOR($CBS_DROPDOWNLIST, $CBS_SORT, $WS_VSCROLL))
  138.     GUICtrlSetData(-1, $sFonts, "Arial")
  139.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  140.     GUICtrlSetTip(-1, "Some fonts from the list might be not displayed on the image properly!")
  141.     GUICtrlSetState(-1, $GUI_DISABLE)
  142.     $hComboFont_WM = GUICtrlGetHandle($idComboFont_WM)
  143.     $idButtonLoadFont_WM = GUICtrlCreateButton("Load Font", 268, 57, 71, 25)
  144.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  145.     GUICtrlSetTip(-1, "Loads and adds a TrueType Font to the list")
  146.     GUICtrlSetState(-1, $GUI_DISABLE)
  147.     Local Const $hButtonLoadFont_WM = GUICtrlGetHandle($idButtonLoadFont_WM)
  148.     Local Const $sButtonLoadFontNN = _WinAPI_GetClassName($hButtonLoadFont_WM) & _GetNN($hButtonLoadFont_WM)
  149.     Local Const $idLabelSize_WM = GUICtrlCreateLabel("Size", 24, 96, 29, 23)
  150.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  151.     $idInputFSize_WM = GUICtrlCreateInput("24", 64, 96, 48, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
  152.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  153.     GUICtrlSetState(-1, $GUI_DISABLE)
  154.     Local Const $hInputFSize_WM= GUICtrlGetHandle($idInputFSize_WM)
  155.     Local Const $sInputFSizeNN = _WinAPI_GetClassName($hInputFSize_WM) & _GetNN($hInputFSize_WM)
  156.     $idUpdown_WM = GUICtrlCreateUpdown($idInputFSize_WM, $UDS_ARROWKEYS)
  157.     GUICtrlSetLimit(-1, $iMaxFontSize_WM, $iMinFontSize_WM)
  158.     GUICtrlSetState(-1, $GUI_DISABLE)
  159.     $hUpdown_WM = GUICtrlGetHandle($idUpdown_WM)
  160.     $idRadioColor_WM = GUICtrlCreateRadio("Text", 126, 97, 50, 17)
  161.     GUICtrlSetState(-1, $GUI_CHECKED)
  162.     GUICtrlSetState(-1, $GUI_DISABLE)
  163.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  164.     $idButtonColor_WM = GUICtrlCreateButton("", 180, 94, 27, 25, BitOR($BS_FLAT, $WS_BORDER, $BS_PUSHLIKE))
  165.     GUICtrlSetBkColor(-1, $iColorFont_WM)
  166.     GUICtrlSetTip(-1, "Change color of font")
  167.     GUICtrlSetCursor(-1, 0)
  168.     GUICtrlSetState(-1, $GUI_DISABLE)
  169.     Local Const $hButtonColor_WM = GUICtrlGetHandle($idButtonColor_WM)
  170.     Local Const $sButtonColorNN = _WinAPI_GetClassName($hButtonColor_WM) & _GetNN($hButtonColor_WM)
  171.     $idRadioImagePreview_WM = GUICtrlCreateRadio("Image", 223, 87, 55, 17)
  172.     GUICtrlSetState(-1, $GUI_DISABLE)
  173.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  174.     GUICtrlSetTip(-1, "Click on picture control to the right to use an image")
  175.     $idCheckboxFill_WM = GUICtrlCreateCheckbox("Fill ", 223, 111)
  176.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  177.     GUICtrlSetState(-1, $GUI_DISABLE)
  178.     GUICtrlSetTip(-1, "Filles the images onto background using tiling without flipping mode")
  179.     Local Const $hPicStampPreview_WM = GUICtrlCreatePic("", 287, 87, 50, 40, BitOR($GUI_SS_DEFAULT_PIC, $SS_CENTERIMAGE, $SS_SUNKEN))
  180.     GUICtrlSetTip(-1, "Click here to add an image instead of using a text")
  181.     GUICtrlSetState(-1, $GUI_DISABLE)
  182.     Local Const $hPicImagePreview_WM = GUICtrlGetHandle($hPicStampPreview_WM)
  183.     Local Const $iOpaque_Max_WM = 255
  184.     Local Const $iOpaque_Min_WM = 1
  185.     Local Const $idLabelOpaque_WM = GUICtrlCreateLabel("Opaque", 24, 140, 53, 23)
  186.     GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  187.     $idSliderOpaque_WM = GUICtrlCreateSlider(78, 130, 226, 38, BitOR($TBS_TOP, $TBS_LEFT, $TBS_BOTH, $TBS_ENABLESELRANGE))
  188.     GUICtrlSetLimit(-1, $iOpaque_Max_WM, $iOpaque_Min_WM)
  189.     GUICtrlSetData(-1, 92)
  190.     GUICtrlSetTip(-1, "Set opaque level of font")
  191.     GUICtrlSetState(-1, $GUI_DISABLE)
  192.     $hSliderOpaque_WM = GUICtrlGetHandle($idSliderOpaque_WM)
  193.     $idInputOpaque_WM = GUICtrlCreateInput("92", 305, 141, 33, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
  194.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  195.     GUICtrlSetState(-1, $GUI_DISABLE)
  196.     Local Const $hInputOpaque_WM= GUICtrlGetHandle($idInputOpaque_WM)
  197.     Local Const $sInputOpaqueNN = _WinAPI_GetClassName($hInputOpaque_WM) & _GetNN($hInputOpaque_WM)
  198.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  199.  
  200.     Local Const $idGroupPos_WM = GUICtrlCreateGroup(" Position ", 360, 8, 378, 168)
  201.     $idRadioUpperLeft_WM = GUICtrlCreateRadio("", 376, 32, 12, 17)
  202.     GUICtrlSetState(-1, $GUI_DISABLE)
  203.     $idRadioUpperMid_WM = GUICtrlCreateRadio("", 440, 32, 12, 17)
  204.     GUICtrlSetState(-1, $GUI_DISABLE)
  205.     $idRadioUpperRight_WM = GUICtrlCreateRadio("", 504, 32, 12, 17)
  206.     GUICtrlSetState(-1, $GUI_DISABLE)
  207.     $idRadioMidRight_WM = GUICtrlCreateRadio("", 504, 86, 12, 17)
  208.     GUICtrlSetState(-1, $GUI_DISABLE)
  209.     $idRadioCenter_WM = GUICtrlCreateRadio("", 440, 86, 12, 17)
  210.     GUICtrlSetState(-1, $GUI_DISABLE)
  211.     $idRadioMidLeft_WM = GUICtrlCreateRadio("", 376, 86, 12, 17)
  212.     GUICtrlSetState(-1, $GUI_DISABLE)
  213.     $idRadioButtomRight_WM = GUICtrlCreateRadio("", 504, 143, 12, 17)
  214.     GUICtrlSetState(-1, $GUI_DISABLE)
  215.     GUICtrlSetState(-1, $GUI_CHECKED)
  216.     $idRadioButtomMid_WM = GUICtrlCreateRadio("", 440, 143, 12, 17)
  217.     GUICtrlSetState(-1, $GUI_DISABLE)
  218.     $idRadioButtomLeft_WM = GUICtrlCreateRadio("", 376, 143, 12, 17)
  219.     GUICtrlSetState(-1, $GUI_DISABLE)
  220.     Local Const $idLabelDelimiter_WM = GUICtrlCreateLabel("", 532, 18, 2, 158, $SS_ETCHEDVERT)
  221.     Local Const $iDegree_Max_WM = 180
  222.     Local Const $iDegree_Min_WM = -180
  223.     $idSliderDegree_WM = GUICtrlCreateSlider(544, 16, 30, 158, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_VERT, $TBS_ENABLESELRANGE))
  224.     GUICtrlSetLimit(-1, $iDegree_Max_WM, $iDegree_Min_WM)
  225.     GUICtrlSetTip(-1, "Set degree of text / % size of image")
  226.     GUICtrlSetCursor(-1, 0)
  227.     GUICtrlSetState(-1, $GUI_DISABLE)
  228.     $hSliderDegree_WM = GUICtrlGetHandle($idSliderDegree_WM)
  229.     $idInputDegree_WM = GUICtrlCreateInput("0", 578, 147, 30, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
  230.     GUICtrlSetLimit(-1, 3)
  231.     GUICtrlSetState(-1, $GUI_DISABLE)
  232.     Local Const $hInputDegree_WM= GUICtrlGetHandle($idInputDegree_WM)
  233.     Local Const $sInputDegreeNN = _WinAPI_GetClassName($hInputDegree_WM) & _GetNN($hInputDegree_WM)
  234.     Local Const $idLabelDegree_WM = GUICtrlCreateLabel("° Rotation / % Size", 612, 150, 108, 19)
  235.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  236.     $idCheckboxCircular_WM = GUICtrlCreateCheckbox("Arrange Circular", 612, 24, 105, 17)
  237.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  238.     GUICtrlSetTip(-1, "When 'Arrange Circular' is activated then rotation is deactivated")
  239.     GUICtrlSetState(-1, $GUI_DISABLE)
  240.     $idInputRadius_WM = GUICtrlCreateInput("64", 612, 58, 28, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
  241.     GUICtrlSetLimit(-1, $iRadius_Min_WM)
  242.     GUICtrlSetState(-1, $GUI_DISABLE)
  243.     Local Const $hInputRadius_WM= GUICtrlGetHandle($idInputRadius_WM)
  244.     Local Const $sInputRadiusNN = _WinAPI_GetClassName($hInputRadius_WM) & _GetNN($hInputRadius_WM)
  245.     Local Const $idLabelRadius_WM = GUICtrlCreateLabel("Radius", 644, 59, 41, 19)
  246.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  247.     $idSliderRadius_WM = GUICtrlCreateSlider(606, 82, 130, 37, $TBS_BOTH)
  248.     GUICtrlSetLimit(-1, $iRadius_Max_WM, $iRadius_Min_WM)
  249.     GUICtrlSetData(-1, 60)
  250.     GUICtrlSetState(-1, $GUI_DISABLE)
  251.     GUICtrlSetTip(-1, "Change radius of circular text")
  252.     $hSliderRadius_WM = GUICtrlGetHandle($idSliderRadius_WM)
  253.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  254.  
  255.     Local Const $idGroupPreview_WM = GUICtrlCreateGroup(" Preview (" & $iW_Pic_WM & "x" & $iH_Pic_WM & ") ", 16, 176, $iW_Grp_WM, $iH_Grp_WM)
  256.     $idPicPreview_WM = GUICtrlCreatePic("", 26, 194, $iW_Pic_WM, $iH_Pic_WM)
  257.     GUICtrlSetState(-1, $GUI_DISABLE)
  258.     GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)
  259.     Local Const $hPicPreview_WM = GUICtrlGetHandle($idPicPreview_WM)
  260.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  261.  
  262.     Local Const $idGroupTxtEffects_WM = GUICtrlCreateGroup(" Text Effects ", $iW_Grp_WM + 52, 176, 170, 160)
  263.     $idRadioTxtFXDefault_WM = GUICtrlCreateRadio("Default", 790, 210, 59, 17)
  264.     GUICtrlSetState(-1, $GUI_CHECKED)
  265.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  266.     Local Const $hRadioTxtFXDefault_WM= GUICtrlGetHandle($idRadioTxtFXDefault_WM)
  267.     Local Const $sRadioTxtFXDefaultNN = _WinAPI_GetClassName($hRadioTxtFXDefault_WM) & _GetNN($hRadioTxtFXDefault_WM)
  268.  
  269.     $idRadioTxtFXOutline_WM = GUICtrlCreateRadio("Outlined", 790, 240, 65, 17)
  270.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  271.     GUICtrlSetState(-1, $GUI_DISABLE)
  272.     Local Const $hRadioTxtFXOutline_WM= GUICtrlGetHandle($idRadioTxtFXOutline_WM)
  273.     Local Const $sRadioTxtFXOutlineNN = _WinAPI_GetClassName($hRadioTxtFXOutline_WM) & _GetNN($hRadioTxtFXOutline_WM)
  274.  
  275.     $idRadioTxtFXOutlineFilled_WM = GUICtrlCreateRadio("Outlined Filled", 790, 270, 95, 17)
  276.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  277.     GUICtrlSetState(-1, $GUI_DISABLE)
  278.     Local Const $hRadioTxtFXOutlineFilled_WM= GUICtrlGetHandle($idRadioTxtFXOutlineFilled_WM)
  279.     Local Const $sRadioTxtFXOutlineFilledNN = _WinAPI_GetClassName($hRadioTxtFXOutlineFilled_WM) & _GetNN($hRadioTxtFXOutlineFilled_WM)
  280.  
  281.     $idRadioTxtFXEmbossed_WM = GUICtrlCreateRadio("Embossed", 790, 300, 75, 17)
  282.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  283.     GUICtrlSetState(-1, $GUI_DISABLE)
  284.     Local Const $hRadioTxtFXEmbossed_WM= GUICtrlGetHandle($idRadioTxtFXEmbossed_WM)
  285.     Local Const $sRadioTxtFXEmbossedNN = _WinAPI_GetClassName($hRadioTxtFXEmbossed_WM) & _GetNN($hRadioTxtFXEmbossed_WM)
  286.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  287.  
  288.     Local Const $idGroupSave_WM = GUICtrlCreateGroup(" Save Settings ", $iW_Grp_WM + 52, 346, 170, 298)
  289.     $idRadioSaveJPG_WM = GUICtrlCreateRadio("JPG", 790, 460, 49, 17)
  290.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  291.     GUICtrlSetState(-1, $GUI_CHECKED)
  292.     $idRadioSaveBMP_WM = GUICtrlCreateRadio("BMP", 790, 500, 49, 17)
  293.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  294.     $idRadioSavePNG_WM = GUICtrlCreateRadio("PNG", 790, 540, 49, 17)
  295.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  296.     $idRadioSaveGIF_WM = GUICtrlCreateRadio("GIF", 873, 460, 49, 17)
  297.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  298.     $idRadioSaveTIF_WM = GUICtrlCreateRadio("TIF", 873, 500, 49, 17)
  299.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  300.     $idSliderJPGQual_WM = GUICtrlCreateSlider(776, 396, 164, 45, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_BOTH, $TBS_ENABLESELRANGE))
  301.     GUICtrlSetData(-1, 90)
  302.     GUICtrlSetState(-1, $GUI_DISABLE)
  303.     $idButtonTPColor_WM = GUICtrlCreateButton("", 872, 540, 16, 16, BitOR($BS_FLAT, $WS_BORDER, $BS_PUSHLIKE))
  304.     GUICtrlSetBkColor(-1, $iColorImgTP_WM)
  305.     GUICtrlSetResizing(-1, $GUI_DOCKAUTO + $GUI_DOCKSIZE)
  306.     GUICtrlSetTip(-1, "Change background color for transparent images")
  307.     Local Const $hButtonTPColor_WM = GUICtrlGetHandle($idButtonTPColor_WM)
  308.     Local Const $sButtonTPColorNN = _WinAPI_GetClassName($hButtonTPColor_WM) & _GetNN($hButtonTPColor_WM)
  309.     Local $idLabelTPColor_WM = GUICtrlCreateLabel("Transp." & @LF & "Bg Color", 893, 537, 39, 25)
  310.     GUICtrlSetFont(-1, 8, 400, 0, "Times New Roman")
  311.     GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
  312.     $hSliderJPGQual_WM = GUICtrlGetHandle($idSliderJPGQual_WM)
  313.     Local Const $idLabelJPGQuality = GUICtrlCreateLabel("JPG Quality", 782, 372, 69, 17)
  314.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  315.     $idInputJPGQual_WM = GUICtrlCreateInput("90", 856, 370, 30, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER))
  316.     GUICtrlSetLimit(-1, 3)
  317.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  318.     GUICtrlSetTip(-1, "0 - 100 (0 worst - 100 best)")
  319.     GUICtrlSetState(-1, $GUI_DISABLE)
  320.     Local Const $idLabelSavePath = GUICtrlCreateLabel("Path to File:", 782, 592, 69, 17)
  321.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  322.     $idInputSavePath_WM = GUICtrlCreateInput("", 777, 612, 164, 21, $ES_READONLY + $ES_AUTOHSCROLL)
  323.     GUICtrlSetLimit(-1, 100, 0)
  324.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  325.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  326.  
  327.     Local Const $idButtonApply_WM = GUICtrlCreateButton("Apply", 655, 670, 75, 25)
  328.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  329.     GUICtrlSetTip(-1, "Apply current settings to image")
  330.     GUICtrlSetState(-1, $GUI_DISABLE)
  331.     Local Const $hButtonApply_WM = GUICtrlGetHandle($idButtonApply_WM)
  332.     Local Const $sButtonApplyNN = _WinAPI_GetClassName($hButtonApply_WM) & _GetNN($hButtonApply_WM)
  333.     $idButtonLoadImage_WM = GUICtrlCreateButton("Load Image", 16, 670, 75, 25)
  334.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  335.     GUICtrlSetTip(-1, "Load a GDI+ compatible image")
  336.     Local Const $hButtonLoadImage_WM = GUICtrlGetHandle($idButtonLoadImage_WM)
  337.     Local Const $sButtonLoadImageNN = _WinAPI_GetClassName($hButtonLoadImage_WM) & _GetNN($hButtonLoadImage_WM)
  338.     Local Const $idButtonUndo_WM = GUICtrlCreateButton("Undo", 740, 670, 75, 25)
  339.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  340.     GUICtrlSetTip(-1, "Undo made last change")
  341.     GUICtrlSetState(-1, $GUI_DISABLE)
  342.     Local Const $hButtonUndo_WM = GUICtrlGetHandle($idButtonUndo_WM)
  343.     Local Const $sButtonUndoNN = _WinAPI_GetClassName($hButtonUndo_WM) & _GetNN($hButtonUndo_WM)
  344.     $idButtonSaveImage_WM = GUICtrlCreateButton("Save", 825, 670, 75, 25)
  345.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  346.     GUICtrlSetTip(-1, "Save current image")
  347.     GUICtrlSetState(-1, $GUI_DISABLE)
  348.     Local Const $hButtonSaveImage_WM = GUICtrlGetHandle($idButtonSaveImage_WM)
  349.     Local Const $sButtonSaveImageNN = _WinAPI_GetClassName($hButtonSaveImage_WM) & _GetNN($hButtonSaveImage_WM)
  350.     Local Const $idButtonExit_WM = GUICtrlCreateButton("Exit", 908, 660, 36, 36, $BS_ICON)
  351.     _GUICtrlButton_SetImage($idButtonExit_WM, "shell32.dll", 27, True)
  352.     GUICtrlSetTip(-1, "Close program")
  353.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman")
  354.     Local Const $hButtonExit_WM = GUICtrlGetHandle($idButtonExit_WM)
  355.     Local Const $sButtonExitNN = _WinAPI_GetClassName($hButtonExit_WM) & _GetNN($hButtonExit_WM)
  356.     $idSliderAdjY_WM = GUICtrlCreateSlider($iW_Grp_WM + 16, 172, 30, $iH_Pic_WM + 44, $TBS_VERT + $TBS_AUTOTICKS + $TBS_LEFT)
  357.     GUICtrlSetData(-1, 0)
  358.     GUICtrlSetLimit(-1, 0, 0)
  359.     GUICtrlSetTip(-1, "Adjust text position on y axis")
  360.     GUICtrlSetState(-1, $GUI_DISABLE)
  361.     $hSliderAdjY_WM = GUICtrlGetHandle($idSliderAdjY_WM)
  362.     $idSliderAdjX_WM = GUICtrlCreateSlider(8, 645, $iW_Grp_WM + 16, 22, $TBS_AUTOTICKS)
  363.     GUICtrlSetData(-1, 0)
  364.     GUICtrlSetLimit(-1, 0, 0)
  365.     GUICtrlSetTip(-1, "Adjust text position on x axis")
  366.     GUICtrlSetState(-1, $GUI_DISABLE)
  367.     $hSliderAdjX_WM = GUICtrlGetHandle($idSliderAdjX_WM)
  368.     Local Const $idLabelImgFN = GUICtrlCreateLabel("File: ", 100, 675, 25)
  369.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman", 5)
  370.     Local Const $iLIN_Width = 260
  371.     Local Const $iLIN_Height = 20
  372.     Local Const $sLIN_Font = "Times New Roman"
  373.     Local Const $sLIN_FontSize = 10
  374.     Local Const $idLabelImgName = GUICtrlCreateLabel(" -", 128, 675, $iLIN_Width, $iLIN_Height, $SS_LEFTNOWORDWRAP)
  375.     GUICtrlSetFont(-1, $sLIN_FontSize, 400, 0, $sLIN_Font, 5)
  376.     GUICtrlSetColor(-1, 0x000080)
  377.     Local Const $idLabelImgDim = GUICtrlCreateLabel("Image Dimension: ", 395, 675, 98)
  378.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman", 5)
  379.     $idLabelImgDimSize = GUICtrlCreateLabel("0 x 0 ", 495, 675, 70)
  380.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman", 5)
  381.     GUICtrlSetColor(-1, 0x000080)
  382.     Local Const $idButtonMore_WM = GUICtrlCreateButton("More", 570, 670, 75, 25)
  383.     GUICtrlSetFont(-1, 10, 400, 0, "Times New Roman", 5)
  384.     Local Const $hButtonMore_WM = GUICtrlGetHandle($idButtonMore_WM)
  385.     Local Const $sButtonMoreNN = _WinAPI_GetClassName($hButtonMore_WM) & _GetNN($hButtonMore_WM)
  386.     Local Const $hMenu_More_WM = _GUICtrlMenu_CreatePopup()
  387.     _GUICtrlMenu_InsertMenuItem($hMenu_More_WM, 0, "Resize Image", $idResize_WM)
  388.     _GUICtrlMenu_SetItemDisabled($hMenu_More_WM, 0)
  389.     $idDummy_Resize = GUICtrlCreateDummy()
  390.     Local Const $hBMP_Resize_WM = _GDIPlus_BitmapCreateFromMemory(_Resize_Icon(), True)
  391.     _GUICtrlMenu_SetItemBmp($hMenu_More_WM, 0, $hBMP_Resize_WM)
  392.     _GUICtrlMenu_InsertMenuItem($hMenu_More_WM, 1, "", 0)
  393.     _GUICtrlMenu_InsertMenuItem($hMenu_More_WM, 2, "Put image to clipboard", $idClipboard_WM)
  394.     _GUICtrlMenu_SetItemDisabled($hMenu_More_WM, 2)
  395.     Local $hTmp = _GUICtrlMenu_CreateBitmap(@SystemDir & "\Shell32.dll", 260)
  396.     $hTmp = _GDIPlus_BitmapCreateFromHBITMAP($hTmp)
  397.     Local $hBMP_Clipboard = _GDIPlus_Convert2HBitmap($hTmp, $COLOR_MENU)
  398.     _GUICtrlMenu_SetItemBmp($hMenu_More_WM, 2, $hBMP_Clipboard)
  399.     _GDIPlus_BitmapDispose($hTmp)
  400.     $idDummy_Clipboard = GUICtrlCreateDummy()
  401.     _GUICtrlMenu_InsertMenuItem($hMenu_More_WM, 3, "", 0)
  402.     _GUICtrlMenu_InsertMenuItem($hMenu_More_WM, 4, "Batch Conversion", $idBatch_WM)
  403.     _GUICtrlMenu_SetItemDisabled($hMenu_More_WM, 4)
  404.     $hTmp = _GDIPlus_BitmapCreateFromMemory(_BatchConvert_Icon())
  405.     Local $hBMP_Batch_WM = _GDIPlus_Convert2HBitmap($hTmp, $COLOR_MENU)
  406.     _GUICtrlMenu_SetItemBmp($hMenu_More_WM, 4, $hBMP_Batch_WM)
  407.     _GDIPlus_BitmapDispose($hTmp)
  408.     $idDummy_Batch = GUICtrlCreateDummy()
  409.  
  410. ;~  DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hGUI_WM, "int",  200, "int", $AW_BLEND)
  411. ;~  DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hGUI_WM, "wstr", "", "wstr", "")
  412.  
  413.     Local $hSysMenu_WM = _GUICtrlMenu_GetSystemMenu(HWnd($hGUI_WM))
  414.     _GUICtrlMenu_AppendMenu($hSysMenu_WM, $MF_SEPARATOR, 0, 0)
  415.     _GUICtrlMenu_AppendMenu($hSysMenu_WM, $MF_STRING, $id_ChkUpd, "Check for updates")
  416.     _GUICtrlMenu_AppendMenu($hSysMenu_WM, $MF_STRING, $id_VisitWeb, "Visit Web Site")
  417.     _GUICtrlMenu_AppendMenu($hSysMenu_WM, $MF_STRING, $id_About, "About")
  418.     Local $hBMP_ChkUpd_WM = _GUICtrlMenu_CreateBitmap(@SystemDir & "\Shell32.dll", 13)
  419.     _GUICtrlMenu_SetItemBmp($hSysMenu_WM, 8, $hBMP_ChkUpd_WM)
  420.  
  421.     $hTmp = _GDIPlus_BitmapCreateFromMemory(_Visit_BMP())
  422.     Local $hBMP_VisitWeb_WM = _GDIPlus_Convert2HBitmap($hTmp, $COLOR_MENU)
  423.     _GUICtrlMenu_SetItemBmp($hSysMenu_WM, 9, $hBMP_VisitWeb_WM)
  424.     _GDIPlus_BitmapDispose($hTmp)
  425.  
  426.     $hTmp = _GDIPlus_BitmapCreateFromMemory(_Info_BMP())
  427.     Local $hBMP_About_WM = _GDIPlus_Convert2HBitmap($hTmp, $COLOR_MENU)
  428.     _GDIPlus_BitmapDispose($hTmp)
  429.     _GUICtrlMenu_SetItemBmp($hSysMenu_WM, 10, $hBMP_About_WM)
  430.  
  431.     $idDummy_WinResized = GUICtrlCreateDummy()
  432.     GUISetState(@SW_SHOW, $hGUI_WM)
  433.     #endregion GUI
  434.  
  435.     Local $aWinPos = WinGetPos($hGUI_WM)
  436.     $iGUI_MinW = $aWinPos[2]
  437.     $iGUI_MinH = $aWinPos[3]
  438.     Local $aPos, $hCtx_Stamp, $hHBitmap_Stamp, $hB, $hBitmap_Stamp_w, $hBitmap_Stamp_h, $w, $h, $f, $iFS, $hCtx_WM_BMP, $fAccel, $iMsgBox, $sFolderBatch
  439.     Local $iSaveColor_WM = $iColorFont_WM, $iColorFont_Current_WM = $iColorFont_WM
  440.     Local $b1stRun = True, $sFilename_WM, $aButton, $iBtnPosX, $iBtnPosY, $sFn, $aMPos, $iOPosX, $iOPosY, $t, $iTimer, $iTimerCloseTT, $iBlobTime, $iMRot, $iODeg, $aCtrlSize
  441.  
  442.     Local Const $hBITMAP_Logo_WM = _GDIPlus_BitmapCreateFromMemory(_W_Logo()), $iW_Logo = _GDIPlus_ImageGetWidth($hBITMAP_Logo_WM), $iH_Logo = _GDIPlus_ImageGetHeight($hBITMAP_Logo_WM)
  443.     _GDIPlus_ImageRotateFlip($hBITMAP_Logo_WM, 6)
  444.     Local Const $hHBITMAP_Logo_WM = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBITMAP_Logo_WM)
  445.     _GDIPlus_BitmapDispose($hBITMAP_Logo_WM)
  446. ;~  $hB = GUICtrlSendMsg($idPicLogo_WM, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_Logo_WM)
  447. ;~  If $hB Then _WinAPI_DeleteObject($hB)
  448.     Local Const $iWaterRadius = 5, $iWaterHeight = 50
  449.     If Not FileExists(@ScriptDir & "\WaterCtrl.dll") Then _WaterCtrl(True)
  450.     Local Const $hWaterDll = DllOpen(@ScriptDir & "\WaterCtrl.dll")
  451.     DllCall($hWaterDll, 'int', 'enablewater', 'hwnd', $hGUI_WM, 'int', $iW_Grp_WM + 32, 'int', 14, 'hwnd', $hHBITMAP_Logo_WM, 'int', $iWaterRadius, 'int', $iWaterHeight)
  452.  
  453.  
  454.     Local $aCID[6] = [$idSliderAdjX_WM, $idSliderAdjY_WM, $idSliderDegree_WM, $idSliderJPGQual_WM, $idSliderOpaque_WM, $idSliderRadius_WM] ; Place multiple ControlIDs in an array
  455.     _NoFocusLines_Set($aCID)
  456.  
  457.     Local $iMemX = 0, $iMemY = 0, $hBmp_tmp, $iGUIGetMsg
  458.     GUIRegisterMsg($WM_COMMAND, "WM_COMMAND_WM")
  459.     GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_WM")
  460.     GUIRegisterMsg($WM_SIZE, "WM_SIZE_WM")
  461.     GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO_WM")
  462.     GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND_WM")
  463.  
  464.     ;$sInputFSizeNN, $sInputOpaqueNN, $sInputDegreeNN, $sInputRadiusNN
  465.     $iTimer = TimerInit()
  466.     $iBlobTime = Random(60000, 300000, 1)
  467.     While 1
  468.         If TimerDiff($iTimer) > $iBlobTime Then
  469.             DllCall($hWaterDll, 'int', 'waterblob', 'int', Random($iW_Logo * 0.25, $iW_Logo * 0.75, 1), 'int', Random($iH_Logo * 0.25, $iH_Logo * 0.75, 1), 'int', $iWaterRadius, 'int', $iWaterHeight * 20)
  470.             $iTimer = TimerInit()
  471.             $iBlobTime = Random(60000, 300000, 1)
  472.         EndIf
  473.         $iGUIGetMsg = GUIGetMsg()
  474.         Switch $iGUIGetMsg
  475.             Case $idButtonLoadImage_WM
  476.                 If ControlGetFocus($hGUI_WM) <> $sButtonLoadImageNN Then ContinueCase
  477.                 If (Not $bDnD) And (Not $bResize) Then $sFileImage_WM = FileOpenDialog("Select an image", "", "Images (*.jpg;*.bmp;*png;*gif;*tif)", 3, "", $hGUI_WM)
  478.                 If (Not @error) Or $bDnD Or $bResize Then
  479.                     If Not $bResize Then
  480.                         If $hBmp Then _GDIPlus_BitmapDispose($hBmp)
  481.                         $hBmp_tmp = _GDIPlus_BitmapCreateFromFile($sFileImage_WM)
  482.                         If @error Then ContinueCase
  483.                         $bW = _GDIPlus_ImageGetWidth($hBmp_tmp)
  484.                         $bH = _GDIPlus_ImageGetHeight($hBmp_tmp)
  485.                         $hBmp = _GDIPlus_BitmapClone($hBmp_tmp, $bW, $bH)
  486.                         _GDIPlus_BitmapDispose($hBmp_tmp)
  487.                     EndIf
  488.                     If Not $b1stRun Then
  489.                         _GDIPlus_GraphicsDispose($hGraphic_WM)
  490.                         _WinAPI_SelectObject($hDC_backbuffer_WM, $DC_obj_WM)
  491.                         _WinAPI_DeleteObject($hBitmap_Preview_WM)
  492.                         _WinAPI_ReleaseDC($hPicPreview_WM, $hDC_WM)
  493. ;~                          _WinAPI_DeleteDC($hDC_backbuffer_WM)
  494.                         _WinAPI_DeleteDC($hDC_WM)
  495.                     EndIf
  496.                     $hBitmap_Preview_WM = _WinAPI_CreateDIB($iW_Pic_WM, $iH_Pic_WM)
  497.                     $hDC_WM = _WinAPI_GetWindowDC($hPicPreview_WM)
  498.                     $hDC_backbuffer_WM = _WinAPI_CreateCompatibleDC($hDC_WM)
  499.                     $DC_obj_WM = _WinAPI_SelectObject($hDC_backbuffer_WM, $hBitmap_Preview_WM)
  500.                     $hGraphic_WM = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer_WM)
  501.                     _GDIPlus_GraphicsClear($hGraphic_WM, 0xFF000000 + $iGUI_WM_color)
  502.                     GUICtrlSetState($idButtonSaveImage_WM, $GUI_DISABLE)
  503.                     If $b1stRun Then
  504.                         GUICtrlSetState($idInputText_WM, $GUI_ENABLE)
  505.                         GUICtrlSetState($idComboFont_WM, $GUI_ENABLE)
  506.                         GUICtrlSetState($idInputFSize_WM, $GUI_ENABLE)
  507.                         GUICtrlSetState($idUpdown_WM, $GUI_ENABLE)
  508.                         GUICtrlSetState($idButtonColor_WM, $GUI_ENABLE)
  509.                         GUICtrlSetState($hPicStampPreview_WM, $GUI_ENABLE)
  510.                         GUICtrlSetState($idSliderOpaque_WM, $GUI_ENABLE)
  511.                         GUICtrlSetState($idInputOpaque_WM, $GUI_ENABLE)
  512.                         GUICtrlSetState($idRadioUpperLeft_WM, $GUI_ENABLE)
  513.                         GUICtrlSetState($idRadioUpperMid_WM, $GUI_ENABLE)
  514.                         GUICtrlSetState($idRadioUpperRight_WM, $GUI_ENABLE)
  515.                         GUICtrlSetState($idRadioMidRight_WM, $GUI_ENABLE)
  516.                         GUICtrlSetState($idRadioCenter_WM, $GUI_ENABLE)
  517.                         GUICtrlSetState($idRadioMidLeft_WM, $GUI_ENABLE)
  518.                         GUICtrlSetState($idRadioButtomRight_WM, $GUI_ENABLE)
  519.                         GUICtrlSetState($idRadioButtomMid_WM, $GUI_ENABLE)
  520.                         GUICtrlSetState($idRadioButtomLeft_WM, $GUI_ENABLE)
  521.                         GUICtrlSetState($idSliderDegree_WM, $GUI_ENABLE)
  522.                         GUICtrlSetState($idInputDegree_WM, $GUI_ENABLE)
  523.                         GUICtrlSetState($idCheckboxCircular_WM, $GUI_ENABLE)
  524.                         GUICtrlSetState($idRadioColor_WM, $GUI_ENABLE)
  525.                         GUICtrlSetState($idButtonApply_WM, $GUI_ENABLE)
  526.                         GUICtrlSetState($idInputJPGQual_WM, $GUI_ENABLE)
  527.                         GUICtrlSetState($idSliderJPGQual_WM, $GUI_ENABLE)
  528.                         GUICtrlSetState($idRadioTxtFXOutline_WM, $GUI_ENABLE)
  529.                         GUICtrlSetState($idRadioTxtFXOutlineFilled_WM, $GUI_ENABLE)
  530.                         GUICtrlSetState($idRadioTxtFXEmbossed_WM, $GUI_ENABLE)
  531.                         GUICtrlSetState($idSliderAdjX_WM, $GUI_ENABLE)
  532.                         GUICtrlSetState($idSliderAdjY_WM, $GUI_ENABLE)
  533.                         GUICtrlSetState($idButtonLoadFont_WM, $GUI_ENABLE)
  534.                         _GUICtrlMenu_SetItemEnabled($hMenu_More_WM, 0)
  535.                         _GUICtrlMenu_SetItemEnabled($hMenu_More_WM, 2)
  536. ;~                      _GUICtrlMenu_SetItemEnabled($hMenu_More_WM, 4)
  537.                         GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL_WM")
  538.                         GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL_WM")
  539.  
  540.                         If @OSBuild < 6000 Or (Not $bAero) Then
  541.                             GUIRegisterMsg($WM_PAINT, "WM_REDRAW_WM")
  542.                         Else
  543.                             GUIRegisterMsg($WM_NCPAINT, "WM_REDRAW_WM")
  544. ;~                          GUIRegisterMsg($WM_ERASEBKGND, "WM_REDRAW_WM")
  545.                             GUIRegisterMsg($WM_PAINT, "WM_REDRAW_WM")
  546.                         EndIf
  547.                         $b1stRun = False
  548.                     EndIf
  549.                     ConsoleWrite($bUndo & @LF)
  550.                     If Not $bUndo Then
  551.                         $iFS = Max(Ceiling(0.5 * $bW / StringLen(GUICtrlRead($idInputText_WM))), $iMinFontSize_WM)
  552.                         GUICtrlSetData($idInputFSize_WM, $iFS)
  553.                         GUICtrlSetData($idInputRadius_WM, Min($iRadius_Max_WM, $iFS * 3))
  554.                     EndIf
  555.                     $sFn = StringRegExpReplace($sFileImage_WM, ".*\\(.*\..*)\s*", "$1")
  556.                     GUICtrlSetData($idLabelImgName, $sFn)
  557.                     GUICtrlSetData($idLabelImgDimSize, $bW & " x " & $bH)
  558.                     If $bResize Then GUICtrlSetState($idButtonSaveImage_WM, $GUI_ENABLE)
  559.                     GUICtrlSetLimit($idSliderAdjX_WM, $bW, -$bW)
  560.                     GUICtrlSetLimit($idSliderAdjY_WM, $bH, -$bH)
  561.                     GUICtrlSetData($idSliderAdjX_WM, 0)
  562.                     GUICtrlSetData($idSliderAdjY_WM, 0)
  563.                     UpdatePreview_WM()
  564.                     $bDnD = False
  565.                     $bResize = False
  566.                     $iMemX = 0
  567.                     $iMemY = 0
  568.                     $fAccel = Max(1, Min(7, ($bW * $bH) / (2.5 * 307200)))
  569.                     $t = TimerInit()
  570.                 EndIf
  571.  
  572.             Case $idButtonApply_WM
  573.                 If ControlGetFocus($hGUI_WM) <> $sButtonApplyNN Then ContinueCase
  574.                 $bUndo = False
  575.                 If $hBitmapUndo_WM Then _GDIPlus_BitmapDispose($hBitmapUndo_WM)
  576.                 $hBitmapUndo_WM = _GDIPlus_BitmapClone($hBmp, $bW, $bH)
  577.                 $hCtx_WM_BMP = _GDIPlus_ImageGetGraphicsContext($hBmp)
  578.                 _GDIPlus_GraphicsDrawImageRect($hCtx_WM_BMP, $hBitmap_WM, 0, 0, $bW, $bH)
  579.                 _GDIPlus_GraphicsDispose($hCtx_WM_BMP)
  580.                 DllCall("gdi32.dll", "bool", "BitBlt", "handle", $hDC_WM, "int", 0, "int", 0, "int", $iW_Pic_WM, "int", $iH_Pic_WM, "handle", $hDC_backbuffer_WM, "int", 0, "int", 0, "dword", $SRCCOPY)
  581.                 GUICtrlSetState($idButtonSaveImage_WM, $GUI_ENABLE)
  582.                 GUICtrlSetBkColor($idButtonApply_WM, 0x00FF00)
  583.                 Sleep(200)
  584.                 GUICtrlSetStyle($idButtonApply_WM, 0)
  585.                 GUICtrlSetState($idButtonUndo_WM, $GUI_ENABLE)
  586.             Case $idButtonUndo_WM
  587.                 If ControlGetFocus($hGUI_WM) <> $sButtonUndoNN Then ContinueCase
  588.                 _GDIPlus_BitmapDispose($hBmp)
  589.                 $bW = _GDIPlus_ImageGetWidth($hBitmapUndo_WM)
  590.                 $bH = _GDIPlus_ImageGetHeight($hBitmapUndo_WM)
  591.                 $hBmp = _GDIPlus_BitmapClone($hBitmapUndo_WM, $bW, $bH)
  592.                 $bResize = True
  593.                 $bUndo = True
  594.                 GUICtrlSetLimit($idSliderAdjX_WM, $bW, -$bW)
  595.                 GUICtrlSetLimit($idSliderAdjY_WM, $bH, -$bH)
  596.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  597.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  598.                 GUICtrlSendMsg($idButtonLoadImage_WM, $BM_CLICK, 0, 0)
  599.                 GUICtrlSetState($idButtonUndo_WM, $GUI_DISABLE)
  600.             Case $idButtonColor_WM
  601.                 If ControlGetFocus($hGUI_WM) <> $sButtonColorNN Then ContinueCase
  602.                 $iSaveColor_WM = $iColorFont_WM
  603.                 $iColorFont_WM = _ChooseColor(2, $iColorFont_WM, 2, HWnd($hGUI_WM))
  604.                 If Not @error Then
  605.                     GUICtrlSetBkColor($idButtonColor_WM, $iColorFont_WM)
  606.                     UpdatePreview_WM()
  607.                     If BitAND(GUICtrlRead($idRadioTxtFXEmbossed_WM), $GUI_CHECKED) = $GUI_CHECKED Then
  608.                         $iColorFont_Embossed_WM = $iColorFont_WM
  609.                     Else
  610.                         $iColorFont_Current_WM = $iColorFont_WM
  611.                     EndIf
  612.                 Else
  613.                     $iColorFont_WM = $iSaveColor_WM
  614.                 EndIf
  615.             Case $idButtonTPColor_WM
  616.                 If ControlGetFocus($hGUI_WM) <> $sButtonTPColorNN Then ContinueCase
  617.                 $iSaveColor_WM = $iColorImgTP_WM
  618.                 $iColorImgTP_WM = _ChooseColor(2, $iColorImgTP_WM, 2, HWnd($hGUI_WM))
  619.                 If Not @error Then
  620.                     GUICtrlSetBkColor($idButtonTPColor_WM, $iColorImgTP_WM)
  621.                 Else
  622.                     $iColorImgTP_WM = $iSaveColor_WM
  623.                 EndIf
  624.             Case $idButtonSaveImage_WM
  625.                 If ControlGetFocus($hGUI_WM) <> $sButtonSaveImageNN Then ContinueCase
  626.                 $sFilename_WM = FileSaveDialog("Save Image", "", "Images (*.jpg;*.bmp;*png;*gif;*tif)", 2, "", $hGUI_WM)
  627.                 If @error Then ContinueCase
  628.                 If _GDIPlus_SaveBitmap($sFilename_WM, $hGUI_WM, False, False, $iColorImgTP_WM) Then GUICtrlSetData($idInputSavePath_WM, $sFilename_WM)
  629.             Case $idButtonMore_WM
  630.                 If ControlGetFocus($hGUI_WM) <> $sButtonMoreNN Then ContinueCase
  631.                 $aButton = ControlGetPos("", "", $idButtonMore_WM)
  632.                 $iBtnPosX = $aButton[0]
  633.                 $iBtnPosY = $aButton[1] + $aButton[3]
  634.                 _WinAPI_Client2Screen($hGUI_WM, $iBtnPosX, $iBtnPosY)
  635.                 _GUICtrlMenu_TrackPopupMenu($hMenu_More_WM, $hGUI_WM, $iBtnPosX, $iBtnPosY)
  636.             Case $idButtonLoadFont_WM
  637.                 If ControlGetFocus($hGUI_WM) <> $sButtonLoadFontNN Then ContinueCase
  638.                 $sFileFont = FileOpenDialog("Select a TrueType Font (TTF)", "", "Fonts (*.TTF)", 3, "", $hGUI_WM)
  639.                 If Not @error Then
  640.                     $bFontMan = True
  641.                     Local $hFile = _WinAPI_CreateFile($sFileFont, 2, 2, 2)
  642.                     If $hFile = 0 Then ContinueCase
  643.                     Local $lFile = FileGetSize($sFileFont)
  644.                     Local $tBuffer = DllStructCreate("byte[" & $lFile + 1 & "]")
  645.                     Local $pBuffer = DllStructGetPtr($tBuffer), $iFile
  646.                     _WinAPI_ReadFile($hFile, $pBuffer, $lFile, $iFile)
  647.                     _WinAPI_CloseHandle($hFile)
  648.                     $sFileFontName = _GetFontInfoFromFilePtr($pBuffer)
  649.                     If StringInStr($sAddFonts, $sFileFontName) Then
  650.                         MsgBox(64 + 262144, "Informatio", "Font: " & $sFileFontName & @CRLF & _
  651.                                 "File: " & $sFileFont & @CRLF & @CRLF & _
  652.                                 "Font was already added - skipping!", 10)
  653.                     Else
  654.                         DllCall($__g_hGDIPDll, 'int', 'GdipPrivateAddFontFile', 'ptr', $hCollection_WM, 'wstr', $sFileFont)
  655.                         GUICtrlSetData($idComboFont_WM, $sFileFontName, $sFileFontName)
  656.                         $sAddFonts &= $sFileFontName & ","
  657.                         UpdatePreview_WM()
  658.                     EndIf
  659.                 EndIf
  660.             Case $idInputDegree_WM, $idInputFSize_WM, $idInputOpaque_WM, $idInputRadius_WM, $idComboFont_WM
  661.                 GUICtrlSetData($idInputDegree_WM, Max(Min(Int(GUICtrlRead($idInputDegree_WM)), $iDegree_Max_WM), $iDegree_Min_WM))
  662.                 GUICtrlSetData($idSliderDegree_WM, GUICtrlRead($idInputDegree_WM))
  663.                 GUICtrlSetData($idInputOpaque_WM, Max(Min(Int(GUICtrlRead($idInputOpaque_WM)), $iOpaque_Max_WM), $iOpaque_Min_WM))
  664.                 GUICtrlSetData($idSliderOpaque_WM, GUICtrlRead($idInputOpaque_WM))
  665.                 GUICtrlSetData($idInputRadius_WM, Max(Min(Int(GUICtrlRead($idInputRadius_WM)), $iRadius_Max_WM), $iRadius_Min_WM))
  666.                 GUICtrlSetData($idSliderRadius_WM, GUICtrlRead($idInputRadius_WM))
  667.                 If StringInStr($sAddFonts, GUICtrlRead($idComboFont_WM)) Then
  668.                     $bFontMan = True
  669.                 Else
  670.                     $bFontMan = False
  671.                 EndIf
  672.                 UpdatePreview_WM()
  673.             Case $idInputJPGQual_WM
  674.                 If GUICtrlRead($idInputJPGQual_WM) > 100 Then GUICtrlSetData($idInputJPGQual_WM, 100)
  675.                 GUICtrlSetData($idSliderJPGQual_WM, GUICtrlRead($idInputJPGQual_WM))
  676.             Case $idInputText_WM
  677.                 If ControlGetFocus($hGUI_WM) <> $sInputTextNN Then ContinueCase
  678.                 If StringLen(GUICtrlRead($idInputText_WM)) > 0 And Not $bStamp_WM Then UpdatePreview_WM()
  679.             Case $GUI_EVENT_CLOSE, $idButtonExit_WM
  680.                 If $iGUIGetMsg <> $GUI_EVENT_CLOSE And ControlGetFocus($hGUI_WM) <> $sButtonExitNN Then ContinueCase
  681.                 GUIRegisterMsg($WM_SIZE, "")
  682.                 GUIRegisterMsg($WM_GETMINMAXINFO, "")
  683.                 GUIRegisterMsg($WM_COMMAND, "")
  684.                 GUIRegisterMsg($WM_VSCROLL, "")
  685.                 GUIRegisterMsg($WM_HSCROLL, "")
  686.                 GUIRegisterMsg($WM_PAINT, "")
  687.                 GUIRegisterMsg($WM_DROPFILES, "")
  688.                 ;GUIRegisterMsg($WM_ERASEBKGND, "")
  689.                 GUIRegisterMsg($WM_NCPAINT, "")
  690.                 GUIRegisterMsg($WM_SYSCOMMAND, "")
  691.                 DllCall("user32.dll", "int", "AnimateWindow", "hwnd", HWnd($hGUI_WM), "int", 200, "int", $AW_BLEND + $AW_HIDE)
  692.                 _GUICtrlMenu_DestroyMenu($hMenu_More_WM)
  693.                 _WinAPI_DeleteObject($hHBITMAP_Logo_WM)
  694.                 _WinAPI_DeleteObject($hBMP_Resize_WM)
  695.                 _WinAPI_DeleteObject($hBMP_ChkUpd_WM)
  696.                 _WinAPI_DeleteObject($hBMP_VisitWeb_WM)
  697.                 _WinAPI_DeleteObject($hBMP_About_WM)
  698.                 _WinAPI_DeleteObject($hBMP_Clipboard)
  699.                 _WinAPI_DeleteObject($hBMP_Batch_WM)
  700.                 _GDIPlus_ImageAttributesDispose($hAttribute_Alpha)
  701.                 If Not $b1stRun Then
  702.                     If $hBitmapStamp_WM Then _GDIPlus_BitmapDispose($hBitmapStamp_WM)
  703.                     _GDIPlus_BitmapDispose($hBmp_Preview_WM)
  704.                     _GDIPlus_BitmapDispose($hBitmap_WM)
  705.                     _GDIPlus_GraphicsDispose($hGraphic_WM)
  706.                     _WinAPI_SelectObject($hDC_backbuffer_WM, $DC_obj_WM)
  707.                     _WinAPI_DeleteObject($hBitmap_Preview_WM)
  708.                     _WinAPI_ReleaseDC($hPicPreview_WM, $hDC_WM)
  709.                 EndIf
  710.                 GUIDelete($hGUI_WM)
  711.                 DllCall($hWaterDll, 'int', 'disablewater')
  712.                 DllClose($hWaterDll)
  713.                 _Exit()
  714.             Case $GUI_EVENT_RESTORE
  715.                 If $bAero Then
  716.                     CopyImageGfx($hBmp_Preview_WM)
  717.                 Else
  718.                     DllCall("gdi32.dll", "bool", "BitBlt", "handle", $hDC_WM, "int", 0, "int", 0, "int", $bW, "int", $bH, "handle", $hDC_backbuffer_WM, "int", 0, "int", 0, "dword", $SRCCOPY)
  719.                 EndIf
  720.             Case $hPicStampPreview_WM
  721.                 $sFileImage_WM = FileOpenDialog("Select an image", "", "Images (*.jpg;*.bmp;*png;*gif;*tif)", 3, "", $hGUI_WM)
  722.                 If Not @error Then
  723.                     GUIRegisterMsg($WM_VSCROLL, "")
  724.                     GUIRegisterMsg($WM_HSCROLL, "")
  725.                     GUICtrlSetState($idRadioImagePreview_WM, $GUI_CHECKED)
  726.                     GUICtrlSetState($idRadioImagePreview_WM, $GUI_ENABLE)
  727.                     If $hBitmapStamp_WM Then _GDIPlus_BitmapDispose($hBitmapStamp_WM)
  728.                     $hBitmapStamp_WM = _GDIPlus_BitmapCreateFromFile($sFileImage_WM)
  729.                     $hBitmap_Stamp_w = _GDIPlus_ImageGetWidth($hBitmapStamp_WM)
  730.                     $hBitmap_Stamp_h = _GDIPlus_ImageGetHeight($hBitmapStamp_WM)
  731.                     If $hBitmap_Stamp_w >= $bW Or $hBitmap_Stamp_h >= $bH Then
  732.                         Local $f
  733.                         If $hBitmap_Stamp_w >= $hBitmap_Stamp_h Then
  734.                             $f = $hBitmap_Stamp_w / $bW
  735.                         Else
  736.                             $f = $hBitmap_Stamp_h / $bH
  737.                         EndIf
  738.                         $hBitmap_Stamp_w = Int($hBitmap_Stamp_w / $f / 2)
  739.                         $hBitmap_Stamp_h = Int($hBitmap_Stamp_h / $f / 2)
  740.                         Local $hBitmapStamp_WM_new = _GDIPlus_BitmapClone($hBitmapStamp_WM, $hBitmap_Stamp_w, $hBitmap_Stamp_h)
  741.                         _GDIPlus_BitmapDispose($hBitmapStamp_WM)
  742.                         $hBitmapStamp_WM = $hBitmapStamp_WM_new
  743.                     EndIf
  744.                     GUICtrlSetLimit($idSliderDegree_WM, 400, 1)
  745.                     GUICtrlSetData($idSliderDegree_WM, 100)
  746.                     GUICtrlSetData($idInputDegree_WM, 100)
  747.                     $aPos = ControlGetPos($hGUI_WM, "", $hPicStampPreview_WM)
  748.                     $hBitmapStampPreview_WM = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $aPos[2], "int", $aPos[3], "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  749.                     $hBitmapStampPreview_WM = $hBitmapStampPreview_WM[6]
  750.                     $hCtx_Stamp = _GDIPlus_ImageGetGraphicsContext($hBitmapStampPreview_WM)
  751.                     _GDIPlus_GraphicsClear($hCtx_Stamp, 0xFFF0F0F0)
  752.                     $hB = GUICtrlSendMsg($hPicStampPreview_WM, $STM_SETIMAGE, $IMAGE_BITMAP, $hCtx_Stamp)
  753.                     If $hB Then _WinAPI_DeleteObject($hB)
  754.                     DllCall($__g_hGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtx_Stamp, "int", 7)
  755.  
  756.                     If $hBitmap_Stamp_w < $aPos[2] And $hBitmap_Stamp_h < $aPos[3] Then
  757.                         _GDIPlus_GraphicsDrawImageRect($hCtx_Stamp, $hBitmapStamp_WM, ($aPos[2] - $hBitmap_Stamp_w) / 2, ($aPos[3] - $hBitmap_Stamp_h) / 2, $hBitmap_Stamp_w, $hBitmap_Stamp_h)
  758.                     Else
  759.                         If $hBitmap_Stamp_w >= $hBitmap_Stamp_h Then
  760.                             $f = $hBitmap_Stamp_w / $aPos[2]
  761.                             If $hBitmap_Stamp_h / $f > $aPos[3] Then $f = $hBitmap_Stamp_w / $aPos[3]
  762.                         Else
  763.                             $f = $hBitmap_Stamp_h / $aPos[3]
  764.                         EndIf
  765.                         $w = $hBitmap_Stamp_w / $f
  766.                         $h = $hBitmap_Stamp_h / $f
  767.                         _GDIPlus_GraphicsDrawImageRect($hCtx_Stamp, $hBitmapStamp_WM, ($aPos[2] - $w) / 2, ($aPos[3] - $h) / 2, $w, $h)
  768.                     EndIf
  769.                     $hHBitmap_Stamp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmapStampPreview_WM)
  770.                     $hB = GUICtrlSendMsg($hPicStampPreview_WM, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBitmap_Stamp)
  771.                     If $hB Then _WinAPI_DeleteObject($hB)
  772.                     _WinAPI_DeleteObject($hHBitmap_Stamp)
  773.                     _GDIPlus_BitmapDispose($hBitmapStampPreview_WM)
  774.                     _GDIPlus_GraphicsDispose($hCtx_Stamp)
  775.                     $bStamp_WM = True
  776.                     GUICtrlSetData($idSliderAdjX_WM, 0)
  777.                     GUICtrlSetData($idSliderAdjY_WM, 0)
  778.                     $iAdjX_WM = 0
  779.                     $iAdjY_WM = 0
  780.                     GUICtrlSetState($idCheckboxFill_WM, $GUI_ENABLE)
  781.                     GUICtrlSetState($idRadioColor_WM, $GUI_UNCHECKED)
  782.                     UpdatePreview_WM()
  783.                     Disable_Controls()
  784.                     GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL_WM")
  785.                     GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL_WM")
  786.                 EndIf
  787.             Case $idCheckboxCircular_WM
  788.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  789.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  790.                 $iAdjX_WM = 0
  791.                 $iAdjY_WM = 0
  792.                 If BitAND(GUICtrlRead($idCheckboxCircular_WM), $GUI_CHECKED) Then
  793.                     GUICtrlSetState($idInputRadius_WM, $GUI_ENABLE)
  794.                     GUICtrlSetState($idSliderRadius_WM, $GUI_ENABLE)
  795.                 Else
  796.                     GUICtrlSetState($idInputRadius_WM, $GUI_DISABLE)
  797.                     GUICtrlSetState($idSliderRadius_WM, $GUI_DISABLE)
  798.                 EndIf
  799.                 UpdatePreview_WM()
  800.             Case $idCheckboxFill_WM
  801.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  802.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  803.                 $iAdjX_WM = 0
  804.                 $iAdjY_WM = 0
  805.                 If BitAND(GUICtrlRead($idCheckboxFill_WM), $GUI_CHECKED) Then
  806.                     $bFill = True
  807.                 Else
  808.                     $bFill = False
  809.                 EndIf
  810.                 UpdatePreview_WM()
  811.             Case $idRadioUpperLeft_WM
  812.                 $iPos_WM = 1
  813.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  814.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  815.                 $iAdjX_WM = 0
  816.                 $iAdjY_WM = 0
  817.                 UpdatePreview_WM()
  818.             Case $idRadioUpperMid_WM
  819.                 $iPos_WM = 2
  820.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  821.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  822.                 $iAdjX_WM = 0
  823.                 $iAdjY_WM = 0
  824.                 UpdatePreview_WM()
  825.             Case $idRadioUpperRight_WM
  826.                 $iPos_WM = 3
  827.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  828.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  829.                 $iAdjX_WM = 0
  830.                 $iAdjY_WM = 0
  831.                 UpdatePreview_WM()
  832.             Case $idRadioMidLeft_WM
  833.                 $iPos_WM = 4
  834.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  835.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  836.                 $iAdjX_WM = 0
  837.                 $iAdjY_WM = 0
  838.                 UpdatePreview_WM()
  839.             Case $idRadioCenter_WM
  840.                 $iPos_WM = 5
  841.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  842.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  843.                 $iAdjX_WM = 0
  844.                 $iAdjY_WM = 0
  845.                 UpdatePreview_WM()
  846.             Case $idRadioMidRight_WM
  847.                 $iPos_WM = 6
  848.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  849.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  850.                 $iAdjX_WM = 0
  851.                 $iAdjY_WM = 0
  852.                 UpdatePreview_WM()
  853.             Case $idRadioButtomLeft_WM
  854.                 $iPos_WM = 7
  855.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  856.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  857.                 $iAdjX_WM = 0
  858.                 $iAdjY_WM = 0
  859.                 UpdatePreview_WM()
  860.             Case $idRadioButtomMid_WM
  861.                 $iPos_WM = 8
  862.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  863.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  864.                 $iAdjX_WM = 0
  865.                 $iAdjY_WM = 0
  866.                 UpdatePreview_WM()
  867.             Case $idRadioButtomRight_WM
  868.                 $iPos_WM = 9
  869.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  870.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  871.                 $iAdjX_WM = 0
  872.                 $iAdjY_WM = 0
  873.                 UpdatePreview_WM()
  874.             Case $idRadioImagePreview_WM
  875.                 $bStamp_WM = True
  876.                 GUICtrlSetLimit($idSliderDegree_WM, 400, 1)
  877.                 GUICtrlSetData($idSliderDegree_WM, 100)
  878.                 GUICtrlSetData($idInputDegree_WM, 100)
  879.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  880.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  881.                 $iAdjX_WM = 0
  882.                 $iAdjY_WM = 0
  883.                 GUICtrlSetState($idCheckboxFill_WM, $GUI_ENABLE)
  884.                 UpdatePreview_WM()
  885.                 Disable_Controls()
  886.             Case $idRadioColor_WM
  887.                 $bStamp_WM = False
  888.                 GUICtrlSetLimit($idSliderDegree_WM, 180, -180)
  889.                 GUICtrlSetData($idSliderDegree_WM, 0)
  890.                 GUICtrlSetData($idInputDegree_WM, 0)
  891.                 GUICtrlSetData($idSliderAdjX_WM, 0)
  892.                 GUICtrlSetData($idSliderAdjY_WM, 0)
  893.                 $iAdjX_WM = 0
  894.                 $iAdjY_WM = 0
  895.                 GUICtrlSetState($idCheckboxFill_WM, $GUI_DISABLE)
  896.                 UpdatePreview_WM()
  897.                 Enable_Controls()
  898.             Case $idRadioTxtFXDefault_WM
  899.                 If ControlGetFocus($hGUI_WM) <> $sRadioTxtFXDefaultNN Then ContinueCase
  900.                 $sFX_WM = "Default"
  901.                 $iColorFont_WM = $iColorFont_Current_WM
  902.                 GUICtrlSetBkColor($idButtonColor_WM, $iColorFont_WM)
  903.                 UpdatePreview_WM()
  904.             Case $idRadioTxtFXOutline_WM
  905.                 If ControlGetFocus($hGUI_WM) <> $sRadioTxtFXOutlineNN Then ContinueCase
  906.                 $sFX_WM = "Outlined"
  907.                 $iColorFont_WM = $iColorFont_Current_WM
  908.                 GUICtrlSetBkColor($idButtonColor_WM, $iColorFont_WM)
  909.                 UpdatePreview_WM()
  910.             Case $idRadioTxtFXOutlineFilled_WM
  911.                 If ControlGetFocus($hGUI_WM) <> $sRadioTxtFXOutlineFilledNN Then ContinueCase
  912.                 $sFX_WM = "OutlinedFilled"
  913.                 $iColorFont_WM = $iColorFont_Current_WM
  914.                 GUICtrlSetBkColor($idButtonColor_WM, $iColorFont_WM)
  915.                 UpdatePreview_WM()
  916.             Case $idRadioTxtFXEmbossed_WM
  917.                 If ControlGetFocus($hGUI_WM) <> $sRadioTxtFXEmbossedNN Then ContinueCase
  918.                 $sFX_WM = "Embossed"
  919.                 $iColorFont_WM = $iColorFont_Embossed_WM
  920.                 GUICtrlSetBkColor($idButtonColor_WM, $iColorFont_WM)
  921.                 UpdatePreview_WM()
  922.             Case $idRadioSaveBMP_WM
  923.                 $sSaveType = "bmp"
  924.             Case $idRadioSaveGIF_WM
  925.                 $sSaveType = "gif"
  926.             Case $idRadioSaveJPG_WM
  927.                 $sSaveType = "jpg"
  928.             Case $idRadioSavePNG_WM
  929.                 $sSaveType = "png"
  930.             Case $idRadioSaveTIF_WM
  931.                 $sSaveType = "tif"
  932.             Case $idDummy_Resize
  933.                 Resize_Image($hGUI_WM)
  934.             Case $idDummy_Clipboard
  935.                 Pic2Clipboard()
  936.             Case $idDummy_WinResized
  937.                 If Not $b1stRun Then
  938.                     $aCtrlSize = ControlGetPos($hGUI_WM, "", $idPicPreview_WM) ; ratio 117:73
  939.                     $iW_Pic_WM = $aCtrlSize[2]
  940.                     $iH_Pic_WM = $aCtrlSize[3]
  941.                     _GDIPlus_GraphicsDispose($hGraphic_WM)
  942.                     _WinAPI_SelectObject($hDC_backbuffer_WM, $DC_obj_WM)
  943.                     _WinAPI_DeleteObject($hBitmap_Preview_WM)
  944.                     _WinAPI_ReleaseDC($hPicPreview_WM, $hDC_WM)
  945.                     _WinAPI_DeleteDC($hDC_WM)
  946.  
  947.                     $hBitmap_Preview_WM = _WinAPI_CreateDIB($iW_Pic_WM, $iH_Pic_WM)
  948.                     $hDC_WM = _WinAPI_GetWindowDC($hPicPreview_WM)
  949.                     $hDC_backbuffer_WM = _WinAPI_CreateCompatibleDC($hDC_WM)
  950.                     $DC_obj_WM = _WinAPI_SelectObject($hDC_backbuffer_WM, $hBitmap_Preview_WM)
  951.                     $hGraphic_WM = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer_WM)
  952.                     _GDIPlus_GraphicsClear($hGraphic_WM, 0xFF000000 + $iGUI_WM_color)
  953.                     $bUpdate_WM = True
  954.                 EndIf
  955.             Case $idDummy_Batch
  956.                 MsgBox(64, "Information", "This feature will come soon!", 60, $hGUI_WM)
  957. ;~              $iMsgBox = MsgBox(4 + 32 + 262144, "Question",  "Current settings will be used to watermark all images in a folder (no subfolder support yet)!" & @LF & @LF & _
  958. ;~                                                                                                                          "Continue?", 0, $hGUI_WM)
  959. ;~              If $iMsgBox = 7 Then ContinueLoop
  960. ;~              $sFolderBatch = FileSelectFolder("Select folder to batch convert", "", 2, "", $hGUI_WM)
  961. ;~              If @error Then ContinueLoop
  962.         EndSwitch
  963.  
  964.         $aMPos = GUIGetCursorInfo($hGUI_WM)
  965.         If ($aMPos[4] = $idPicPreview_WM) And (Not $bStoppMove) And (TimerDiff($t) > 500) Then
  966.             If $aMPos[2] Then
  967.                 If Not $iAdjX_WM And Not $iAdjY_WM Then
  968.                     $iMemX = 0
  969.                     $iMemY = 0
  970.                 EndIf
  971.                 $iAdjX_WM = Int(($aMPos[0] - $iOPosX) * $fAccel) + $iMemX
  972.                 $iAdjY_WM = Int(($aMPos[1] - $iOPosY) * $fAccel) + $iMemY
  973.                 GUICtrlSetData($idSliderAdjX_WM, $iAdjX_WM)
  974.                 GUICtrlSetData($idSliderAdjY_WM, $iAdjY_WM)
  975.                 $bUpdate_WM = True
  976.             Else
  977.                 If Not $b1stRun Then
  978.                     $iOPosX = $aMPos[0]
  979.                     $iOPosY = $aMPos[1]
  980.                     $iMemX = $iAdjX_WM
  981.                     $iMemY = $iAdjY_WM
  982.                 EndIf
  983.             EndIf
  984.  
  985.             If $aMPos[3] And Not $b1stRun Then
  986.                 $iOPosX = $aMPos[0]
  987.                 $iODeg =  GUICtrlRead($idSliderDegree_WM)
  988.                 Do
  989.                     $aMPos = GUIGetCursorInfo($hGUI_WM)
  990.                     $iMRot = Mod($aMPos[0] - $iOPosX, 180) + $iODeg
  991.                     GUICtrlSetData($idSliderDegree_WM, $iMRot)
  992.                     GUICtrlSetData($idInputDegree_WM, $iMRot)
  993.                     UpdatePreview_WM()
  994.                 Until Not $aMPos[3]
  995.             EndIf
  996.         EndIf
  997.  
  998.         If $bUpdate_WM Then
  999.             $iTimerCloseTT = TimerInit()
  1000.             UpdatePreview_WM()
  1001.             $bUpdate_WM = False
  1002.         EndIf
  1003.         If TimerDiff($iTimerCloseTT) > 500 Then ToolTip("")
  1004.     WEnd
  1005. EndFunc   ;==>Watermark
  1006.  
  1007. Func Pic2Clipboard()
  1008.     Local $hClipboard_Bitmap = _WinAPI_CopyImage(_GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp), 0, 0, 0, $LR_COPYDELETEORG + $LR_COPYRETURNORG)
  1009.  
  1010.     Local $err = 0, $err_txt, $hCP
  1011.     If Not _ClipBoard_Open(HWnd($hGUI_WM)) Then
  1012.         $err = @error
  1013.         $err_txt = "_ClipBoard_Open failed!"
  1014.     EndIf
  1015.     If Not _ClipBoard_Empty() Then
  1016.         $err = @error
  1017.         $err_txt = "_ClipBoard_Empty failed!"
  1018.     EndIf
  1019.      _ClipBoard_SetData("!", $CF_TEXT)
  1020.     $hCP = _ClipBoard_SetDataEx($hClipboard_Bitmap, $CF_BITMAP)
  1021.     If Not  $hCP  Or @error Then
  1022.         $err = @error
  1023.         $err_txt = "_ClipBoard_SetDataEx failed!"
  1024.     EndIf
  1025.     _ClipBoard_Close()
  1026.     If Not $err Then
  1027.         MsgBox(64, "Information", "Image put to clipboard!", 10)
  1028.         Return True
  1029.     EndIf
  1030.     MsgBox(16, "Error", "An error has occured: " & $err_txt, 10)
  1031.     Return False
  1032. EndFunc   ;==>Pic2Clipboard
  1033.  
  1034. Func Resize_Image($hWnd)
  1035.     GUIRegisterMsg($WM_COMMAND, "")
  1036.     Local Const $hGUI_WM_Resize = GUICreate("Resize Image", 306, 470, -1, -1, BitOR($WS_SYSMENU, $WS_GROUP), BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST), $hWnd)
  1037.     GUISetFont(8, 400, 0, "Arial")
  1038.     GUISetBkColor(0xFFFFFF, $hGUI_WM_Resize)
  1039.  
  1040.     Local Const $idGroup_WM_ISize = GUICtrlCreateGroup(" Image Size ", 16, 8, 273, 97)
  1041.     Local Const $idLabel_WM_Current = GUICtrlCreateLabel("Current Size:", 32, 32, 94, 22)
  1042.     GUICtrlSetFont(-1, 12, 400, 0, "Arial")
  1043.     Local Const $idLabel_WM_New = GUICtrlCreateLabel("New Size:", 32, 64, 74, 22)
  1044.     GUICtrlSetFont(-1, 12, 400, 0, "Arial")
  1045.     $idLabel_WM_SizeC = GUICtrlCreateLabel($bW & " x " & $bH & " Pixel", 134, 32, 129, 22, $SS_RIGHT)
  1046.     GUICtrlSetFont(-1, 12, 400, 0, "Arial")
  1047.     $idLabel_WM_SizeN = GUICtrlCreateLabel($bW & " x " & $bH & " Pixel", 134, 64, 129, 22, $SS_RIGHT)
  1048.     GUICtrlSetFont(-1, 12, 400, 0, "Arial")
  1049.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  1050.  
  1051.     Local Const $idGroup_WM_INSize = GUICtrlCreateGroup(" Set New Size ", 16, 120, 273, 185)
  1052.     Local Const $idLabel_WM_W1 = GUICtrlCreateLabel("Width:", 36, 146, 46, 21)
  1053.     GUICtrlSetFont(-1, 11, 400, 0, "Arial")
  1054.     $idInput_WM_W = GUICtrlCreateInput($bW, 80, 144, 49, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_NUMBER))
  1055.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1056.     Local Const $idLabel_WM_x = GUICtrlCreateLabel("x", 144, 146, 11, 20)
  1057.     GUICtrlSetFont(-1, 10, 400, 0, "Arial")
  1058.     Local Const $idLabel_WM_H1 = GUICtrlCreateLabel(":Height", 221, 146, 49, 21)
  1059.     GUICtrlSetFont(-1, 11, 400, 0, "Arial")
  1060.     $idInput_WM_H = GUICtrlCreateInput($bH, 166, 144, 49, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_NUMBER))
  1061.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1062.     Local Const $idLabel_WM_W2 = GUICtrlCreateLabel("Width:", 36, 183, 46, 21)
  1063.     GUICtrlSetFont(-1, 11, 400, 0, "Arial")
  1064.     $idInput_WM_WP = GUICtrlCreateInput("100", 80, 181, 35, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_NUMBER))
  1065.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1066.     Local Const $idLabel_WM_P1 = GUICtrlCreateLabel("%", 116, 185, 15, 19)
  1067.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1068.     $idInput_WM_HP = GUICtrlCreateInput("100", 166, 181, 35, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_NUMBER))
  1069.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1070.     Local Const $idLabel_WM_P2 = GUICtrlCreateLabel("%", 202, 185, 15, 19)
  1071.     GUICtrlSetFont(-1, 9, 400, 0, "Arial")
  1072.     Local Const $idLabel_WM_H2 = GUICtrlCreateLabel(":Height", 221, 183, 49, 21)
  1073.     GUICtrlSetFont(-1, 11, 400, 0, "Arial")
  1074.     $idChkBox_WM_AR = GUICtrlCreateCheckbox("Preserve Aspect Ration", 80, 220)
  1075.     Local Const $idButton_WM_IHalf = GUICtrlCreateButton("Half", 36, 264, 75, 25)
  1076.     GUICtrlSetFont(-1, 10, 400, 0, "Arial")
  1077.     Local Const $idButton_WM_IDouble = GUICtrlCreateButton("Double", 193, 264, 75, 25)
  1078.     GUICtrlSetFont(-1, 10, 400, 0, "Arial")
  1079.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  1080.  
  1081.     Local Const $idGroup_WM_IMethod = GUICtrlCreateGroup(" Resize Method ", 16, 320, 273, 73)
  1082.     Local Const $idCombo_IE = GUICtrlCreateCombo("", 32, 354, 241, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
  1083.     GUICtrlSetData(-1, "0 - Default interpolation mode|1 - Low-quality mode|2 - High-quality mode|3 - Bilinear interpolation|4 - Bicubic interpolation|5 - Nearest-neighbor interpolation|6 - High-quality, bilinear interpolation|7 - High-quality, bicubic interpolation", "7 - High-quality, bicubic interpolation")
  1084.     GUICtrlCreateGroup("", -99, -99, 1, 1)
  1085.  
  1086.     Local Const $idButton_WM_OK = GUICtrlCreateButton("OK", 72, 408, 75, 25)
  1087.     GUICtrlSetFont(-1, 10, 400, 0, "Arial")
  1088.     Local Const $idButton_WM_Cancel = GUICtrlCreateButton("Cancel", 160, 408, 75, 25)
  1089.     GUICtrlSetFont(-1, 10, 400, 0, "Arial")
  1090.     GUISetState(@SW_SHOW, $hGUI_WM_Resize)
  1091.     ControlFocus($hGUI_WM_Resize, "", $idButton_WM_Cancel)
  1092.     GUIRegisterMsg($WM_COMMAND, "WM_COMMAND_WM")
  1093.  
  1094.     Local $w, $h, $maxw, $maxh, $minw, $minh
  1095.     While 1
  1096.         Switch GUIGetMsg()
  1097.             Case $GUI_EVENT_CLOSE, $idButton_WM_Cancel
  1098.                 GUIDelete($hGUI_WM_Resize)
  1099.                 Return 0
  1100.             Case $idButton_WM_OK
  1101.                 ExitLoop
  1102.             Case $idButton_WM_IHalf
  1103.                 $maxw = Round(GUICtrlRead($idInput_WM_W) / 2, 0)
  1104.                 $maxh = Round(GUICtrlRead($idInput_WM_H) / 2, 0)
  1105.                 If $maxw > 1 Or $maxh > 1 Then
  1106.                     GUICtrlSetData($idInput_WM_W, $maxw)
  1107.                     GUICtrlSetData($idInput_WM_H, $maxh)
  1108.                     GUICtrlSetData($idInput_WM_WP, Round(GUICtrlRead($idInput_WM_W) / $bW * 100))
  1109.                     GUICtrlSetData($idInput_WM_HP, Round(GUICtrlRead($idInput_WM_H) / $bH * 100))
  1110.                     GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  1111.                 EndIf
  1112.             Case $idButton_WM_IDouble
  1113.                 $minw = Round(GUICtrlRead($idInput_WM_W) * 2, 0)
  1114.                 $minh = Round(GUICtrlRead($idInput_WM_H) * 2, 0)
  1115.                 If $minw < 16384 Or $minh < 16384 Then
  1116.                     GUICtrlSetData($idInput_WM_W, $minw)
  1117.                     GUICtrlSetData($idInput_WM_H, $minh)
  1118.                     GUICtrlSetData($idInput_WM_WP, Round(GUICtrlRead($idInput_WM_W) / $bW * 100))
  1119.                     GUICtrlSetData($idInput_WM_HP, Round(GUICtrlRead($idInput_WM_H) / $bH * 100))
  1120.                     GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  1121.                 EndIf
  1122.         EndSwitch
  1123.     WEnd
  1124.  
  1125.     If $hBitmapUndo_WM Then _GDIPlus_BitmapDispose($hBitmapUndo_WM)
  1126.     $hBitmapUndo_WM = _GDIPlus_BitmapClone($hBmp, $bW, $bH)
  1127.  
  1128.     $bW = GUICtrlRead($idInput_WM_W)
  1129.     $bH = GUICtrlRead($idInput_WM_H)
  1130.     GUICtrlSetData($idLabelImgDimSize, $bW & " x " & $bH)
  1131.  
  1132.     Local $hBmp_New = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $bW, "int", $bH, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1133.     $hBmp_New = $hBmp_New[6]
  1134.     Local $hCtx_WM_New = _GDIPlus_ImageGetGraphicsContext($hBmp_New)
  1135.     DllCall($__g_hGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtx_WM_New, "int", _SendMessage(GUICtrlGetHandle($idCombo_IE), $CB_GETCURSEL))
  1136.     _GDIPlus_GraphicsDrawImageRect($hCtx_WM_New, $hBmp, 0, 0, $bW, $bH)
  1137.     _GDIPlus_BitmapDispose($hBmp)
  1138.     _GDIPlus_GraphicsDispose($hCtx_WM_New)
  1139.     GUIDelete($hGUI_WM_Resize)
  1140.     $hBmp = $hBmp_New
  1141.     $bResize = True
  1142.     GUICtrlSetLimit($idSliderAdjX_WM, $bW, -$bW)
  1143.     GUICtrlSetLimit($idSliderAdjY_WM, $bH, -$bH)
  1144.     GUICtrlSetData($idSliderAdjX_WM, 0)
  1145.     GUICtrlSetData($idSliderAdjY_WM, 0)
  1146.     GUICtrlSendMsg($idButtonLoadImage_WM, $BM_CLICK, 0, 0)
  1147.     Return 1
  1148. EndFunc   ;==>Resize_Image
  1149.  
  1150. Func Enable_Controls()
  1151.     GUICtrlSetState($idInputText_WM, $GUI_ENABLE)
  1152.     GUICtrlSetState($idComboFont_WM, $GUI_ENABLE)
  1153.     GUICtrlSetState($idInputFSize_WM, $GUI_ENABLE)
  1154.     GUICtrlSetState($idUpdown_WM, $GUI_ENABLE)
  1155.     GUICtrlSetState($idButtonColor_WM, $GUI_ENABLE)
  1156.     GUICtrlSetState($idCheckboxCircular_WM, $GUI_ENABLE)
  1157.     If BitAND(GUICtrlRead($idCheckboxCircular_WM), $GUI_CHECKED) = $GUI_CHECKED Then
  1158.         GUICtrlSetState($idSliderRadius_WM, $GUI_ENABLE)
  1159.         GUICtrlSetState($idInputRadius_WM, $GUI_ENABLE)
  1160.     EndIf
  1161.     GUICtrlSetState($idRadioTxtFXDefault_WM, $GUI_ENABLE)
  1162.     GUICtrlSetState($idRadioTxtFXOutline_WM, $GUI_ENABLE)
  1163.     GUICtrlSetState($idRadioTxtFXOutlineFilled_WM, $GUI_ENABLE)
  1164.     GUICtrlSetState($idRadioTxtFXEmbossed_WM, $GUI_ENABLE)
  1165.     GUICtrlSetState($idButtonLoadFont_WM, $GUI_ENABLE)
  1166. EndFunc   ;==>Enable_Controls
  1167.  
  1168. Func Disable_Controls()
  1169.     GUICtrlSetState($idInputText_WM, $GUI_DISABLE)
  1170.     GUICtrlSetState($idComboFont_WM, $GUI_DISABLE)
  1171.     GUICtrlSetState($idInputFSize_WM, $GUI_DISABLE)
  1172.     GUICtrlSetState($idUpdown_WM, $GUI_DISABLE)
  1173.     GUICtrlSetState($idCheckboxCircular_WM, $GUI_DISABLE)
  1174.     GUICtrlSetState($idButtonColor_WM, $GUI_DISABLE)
  1175.     GUICtrlSetState($idInputRadius_WM, $GUI_DISABLE)
  1176.     GUICtrlSetState($idSliderRadius_WM, $GUI_DISABLE)
  1177.     GUICtrlSetState($idRadioTxtFXDefault_WM, $GUI_DISABLE)
  1178.     GUICtrlSetState($idRadioTxtFXOutline_WM, $GUI_DISABLE)
  1179.     GUICtrlSetState($idRadioTxtFXOutlineFilled_WM, $GUI_DISABLE)
  1180.     GUICtrlSetState($idRadioTxtFXEmbossed_WM, $GUI_DISABLE)
  1181.     GUICtrlSetState($idButtonLoadFont_WM, $GUI_DISABLE)
  1182. EndFunc   ;==>Disable_Controls
  1183.  
  1184. Func UpdatePreview_WM()
  1185.     $sText_WM = GUICtrlRead($idInputText_WM)
  1186.     If $sText_WM = "" Then Return 0
  1187.     $sFont_WM = GUICtrlRead($idComboFont_WM)
  1188.     $fAlpha_WM = GUICtrlRead($idInputOpaque_WM) / 0xFF
  1189.     $iFontSize_WM = GUICtrlRead($idInputFSize_WM)
  1190.     $iRadius_WM = GUICtrlRead($idInputRadius_WM)
  1191.     $iRotation_WM = GUICtrlRead($idInputDegree_WM)
  1192.     If $hBmp_Preview_WM Then _GDIPlus_BitmapDispose($hBmp_Preview_WM)
  1193.     $hBmp_Preview_WM = 0
  1194.     If Not $bStamp_WM Then
  1195.         If BitAND(GUICtrlRead($idCheckboxCircular_WM), $GUI_CHECKED) Then
  1196.             $hBmp_Preview_WM = _GDIPlus_CreateRotatedLetters($hBmp, $sText_WM, $iPos_WM, $iFontSize_WM, $iRadius_WM, $sFont_WM, $iColorFont_WM, $fAlpha_WM, $iRotation_WM, $iAdjX_WM, $iAdjY_WM, $sFileFontName)
  1197.         Else
  1198.             $hBmp_Preview_WM = _GDIPlus_WatermarkImage($hBmp, $sText_WM, $iManPosX, $iManPosY, $iPos_WM, $sFont_WM, $iFontSize_WM, $iRotation_WM, $iColorFont_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, True, $sFileFontName)
  1199.         EndIf
  1200.     Else
  1201.         $hBmp_Preview_WM = _GDIPlus_StampImage($hBmp, $hBitmapStamp_WM, $iPos_WM, $iRotation_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, $bFill)
  1202.     EndIf
  1203.     CopyImageGfx($hBmp_Preview_WM)
  1204.     Sleep(10)
  1205. EndFunc   ;==>UpdatePreview_WM
  1206.  
  1207. Func CopyImageGfx($hBmp)
  1208.     Local $w, $h, $f
  1209.     _GDIPlus_GraphicsClear($hGraphic_WM, 0xFF000000 + $iGUI_WM_color)
  1210.     If $bW < $iW_Pic_WM And $bH < $iH_Pic_WM Then
  1211.         _GDIPlus_GraphicsDrawImageRect($hGraphic_WM, $hBmp, ($iW_Pic_WM - $bW) / 2, ($iH_Pic_WM - $bH) / 2, $bW, $bH)
  1212.     Else
  1213.         If $bW >= $bH Then
  1214.             $f = $bW / $iW_Pic_WM
  1215.             If ($bH / $f) > $iH_Pic_WM Then $f = $bH / $iH_Pic_WM
  1216.         Else
  1217.             $f = $bH / $iH_Pic_WM
  1218.         EndIf
  1219.         $w = Int($bW / $f)
  1220.         $h = Int($bH / $f)
  1221.         _GDIPlus_GraphicsDrawImageRect($hGraphic_WM, $hBmp, ($iW_Pic_WM - $w) / 2, ($iH_Pic_WM - $h) / 2, $w, $h)
  1222.     EndIf
  1223.     DllCall("gdi32.dll", "bool", "BitBlt", "handle", $hDC_WM, "int", 0, "int", 0, "int", $iW_Pic_WM, "int", $iH_Pic_WM, "handle", $hDC_backbuffer_WM, "int", 0, "int", 0, "dword", $SRCCOPY)
  1224. EndFunc   ;==>CopyImageGfx
  1225.  
  1226. #region command line parameters
  1227. #cs
  1228.     Mandatory:
  1229.     -text "Any Text" | -bitmap <path to an image used for stamp>
  1230.     -in <path to an image which should watermarked or a folder with images>
  1231.     -out <save image name>
  1232.  
  1233.     Optional:
  1234.     -font <font name from the dropdown list. Default is Arial>
  1235.     -size <font size. If 0 then it will be calculated automatically>>
  1236.     -color <color of the font. Default is 0xFF0000>
  1237.     -fx <one of the text fx -> default, outline or embossed. Default is Default>
  1238.     -fxtype <one of the modes -> Text, Circular or Stamp. Default is Text>
  1239.     -opaque <level of opaque (1-255). Default is 92>
  1240.     -pos <fixed position (1-9). Default is 9>
  1241.     -posx <manual x position. Default is 0>
  1242.     -posy <manual y position. Default is 0>
  1243.     -angle <in text/ circular mode the angle of the text (-180 - 180) or in stamp mode resize factor)
  1244.     -circrad <radius of the circular text. If 0 then it will be calculated automatically>
  1245.     -fill <fill stamp image -> 0 or 1. Default is 0)
  1246.     -format <jpg|png|gif|bmp|tif -> jpg is default>
  1247.     -jpgqual <jpg save quality (0-100). Default is 90)
  1248.     -loadfont <path to a ttf font file>
  1249.     -tpbgcolor <background color for transparent images>
  1250.     -silent <show or supress messages in cmd mode (0 | 1). If 1 then file will be overwritten automatically!>
  1251. #ce
  1252. #endregion command line parameters
  1253. Func Cmd()
  1254.     $sFont_WM = "Arial"
  1255.     $iFontSize_WM = 0
  1256.     $iColorFont_WM = 0xFF0000
  1257.     $iColorFont_Embossed_WM = 0x000000
  1258.     $sFX_WM = "Default"
  1259.     $fAlpha_WM = 0x5C / 0xFF
  1260.     $iPos_WM = 9
  1261.     $iRotation_WM = 0
  1262.     $iRadius_WM = 0
  1263.     $sSaveType = "jpg"
  1264.     $iJPGQual_WM = 90
  1265.     $iManPosX = 0
  1266.     $iManPosY = 0
  1267.     $bFill = False
  1268.     $iColorImgTP_WM = 0x000000
  1269.  
  1270.     Local $sFX_Type = "text"
  1271.     Local $sIn, $sOut, $bSilent_run
  1272.     ;text  | bitmap                                             -text "Any Text" | -bitmap "c:\stamp.jpg"
  1273.     ;file in                                                                -in "c:\Test.jpg"
  1274.     ;file out                                                           -out "c:\Test_wm.jpg"
  1275.     ;font name                                                      -font "Arial"
  1276.     ;font size                                                      -size "24"
  1277.     ;font color                                                         -color "0xFF0000"
  1278.     ;text fx                                                                -fx "default"
  1279.     ;effect type text|circular|stamp                -fxtype "text"
  1280.     ;opaque (1-255)                                         -opaque 92
  1281.     ;position (0-9)                                             -pos 9
  1282.     ;manpos x                                                       -posx 40
  1283.     ;manpos y                                                       -posy 80
  1284.     ;rotation (-180 - 180)                              -angle 0 | resize stamp bitmap (value / 100)
  1285.     ;circular radius                                                -circrad 40
  1286.     ;fill                                                                       -fill 0 | 1
  1287.     ;save format                                                    -format "jpg"
  1288.     ;save quality jpg                                           -jpgqual 90
  1289.     ;silent run in cmd                                          -silent 0 | 1
  1290.     ;load a ttf font and use it                         -loadfont <path to a ttf font file>
  1291.     ;bg color for transparent images            -tpbgcolor 0x0000 - 0xFFFFFF
  1292.     If $CmdLine[0] < 2 Then
  1293.         MsgBox(16, "Error", "Parameter Error!", 30)
  1294.         _Exit()
  1295.     EndIf
  1296.     Local $j, $aBitmaps = -1
  1297.     For $j = 1 To UBound($CmdLine) - 1
  1298.         Switch $CmdLine[$j]
  1299.             Case "-text"
  1300.                 If $j < $CmdLine[0] Then $sText_WM = $CmdLine[$j + 1]
  1301.             Case "-bitmap"
  1302.                 If $j < $CmdLine[0] Then
  1303.                     If Not FileExists($CmdLine[$j + 1]) Then
  1304.                         MsgBox(16, "Error", "File '" & $CmdLine[$j + 1] & "' not found!", 30)
  1305.                         ContinueCase
  1306.                     EndIf
  1307.                     $hBitmapStamp_WM = _GDIPlus_BitmapCreateFromFile($CmdLine[$j + 1])
  1308.                     If @error Then MsgBox(16, "Error", "Unable to create bitmap from file '" & $CmdLine[$j + 1] & "'!", 30)
  1309.                 EndIf
  1310.             Case "-in"
  1311.                 If $j < $CmdLine[0] Then
  1312.                     If FileGetAttrib($CmdLine[$j + 1]) = "D" Then
  1313.                         Local $sFilter = " *.jpg *.png *.bmp *.gif *.tif"
  1314.                         $aBitmaps = GetFilesFromFolder($CmdLine[$j + 1], $sFilter)
  1315.                         If @error Then
  1316.                             MsgBox(16, "Error", "Unable to get image files in '" & $CmdLine[$j + 1] & "'!", 30)
  1317.                             _Exit()
  1318.                         EndIf
  1319.                     Else
  1320.                         If Not FileExists($CmdLine[$j + 1]) Then
  1321.                             MsgBox(16, "Error", "File '" & $CmdLine[$j + 1] & "' not found!", 30)
  1322.                             ContinueCase
  1323.                         EndIf
  1324.                         $sIn = $CmdLine[$j + 1]
  1325.                         $hBmp = _GDIPlus_BitmapCreateFromFile($CmdLine[$j + 1])
  1326.                         If @error Then
  1327.                             MsgBox(16, "Error", "Unable to create bitmap from file '" & $CmdLine[$j + 1] & "'", 30)
  1328.                             _Exit()
  1329.                         EndIf
  1330.                     EndIf
  1331.                 Else
  1332.                     MsgBox(16, "Error", "Mandatory value for paramter '-in' is missing!", 30)
  1333.                     _Exit()
  1334.                 EndIf
  1335.             Case "-out"
  1336.                 If $j < $CmdLine[0] Then
  1337.                     If Not StringRegExp($CmdLine[$j + 1], "((?<!.)([a-zA-Z]\:\\)(?!\s)(([\w-+.]*((?<!\s)(\s{1})(?!\\)|(?<!\\)(\\{1})(?!\s))*)*)(\\?)(?!.))", 0) Then
  1338.                         MsgBox(16, "Error", "Invalid filename '" & $CmdLine[$j + 1] & "' for parameter -out' is entered!", 30)
  1339.                         _Exit()
  1340.                     Else
  1341.                         $sOut = $CmdLine[$j + 1]
  1342.                     EndIf
  1343.                 Else
  1344.                     MsgBox(16, "Error", "Mandatory value for paramter '-out' is missing.", 30)
  1345.                     _Exit()
  1346.                 EndIf
  1347.             Case "-font"
  1348.                 If $j < $CmdLine[0] Then
  1349.                     If StringInStr($sFonts, $CmdLine[$j + 1]) Then $sFont_WM = $CmdLine[$j + 1]
  1350.                 EndIf
  1351.             Case "-size"
  1352.                 If $j < $CmdLine[0] Then
  1353.                     If Number($CmdLine[$j + 1]) Then
  1354.                         If Number($CmdLine[$j + 1]) < 512 Then $iFontSize_WM = Number($CmdLine[$j + 1])
  1355.                     EndIf
  1356.                 EndIf
  1357.             Case "-color"
  1358.                 If $j < $CmdLine[0] Then
  1359.                     If Int($CmdLine[$j + 1]) > -1 And Int($CmdLine[$j + 1]) < 0x1000000 Then $iColorFont_WM = Int($CmdLine[$j + 1])
  1360.                 EndIf
  1361.             Case "-fx"
  1362.                 If $j < $CmdLine[0] Then
  1363.                     If StringInStr($sFXs, $CmdLine[$j + 1]) Then $sFX_WM = $CmdLine[$j + 1]
  1364.                 EndIf
  1365.             Case "-fxtype"
  1366.                 If $j < $CmdLine[0] Then
  1367.                     If StringInStr("Text;Circular;Stamp", $CmdLine[$j + 1]) Then $sFX_Type = $CmdLine[$j + 1]
  1368.                 EndIf
  1369.             Case "-opaque"
  1370.                 If $j < $CmdLine[0] Then
  1371.                     If Int($CmdLine[$j + 1]) > 0 And Int($CmdLine[$j + 1]) < 0x100 Then $fAlpha_WM = Int($CmdLine[$j + 1]) / 0xFF
  1372.                 EndIf
  1373.             Case "-pos"
  1374.                 If $j < $CmdLine[0] Then
  1375.                     If Int($CmdLine[$j + 1]) > -1 And Int($CmdLine[$j + 1]) < 10 Then $iPos_WM = Int($CmdLine[$j + 1])
  1376.                 EndIf
  1377.             Case "-posx"
  1378.                 If $j < $CmdLine[0] Then
  1379.                     If IsInt($CmdLine[$j + 1]) Then $iManPosX = Int($CmdLine[$j + 1])
  1380.                 EndIf
  1381.             Case "-posy"
  1382.                 If $j < $CmdLine[0] Then
  1383.                     If IsInt($CmdLine[$j + 1]) Then $iManPosY = Int($CmdLine[$j + 1])
  1384.                 EndIf
  1385.             Case "-angle"
  1386.                 If $j < $CmdLine[0] Then
  1387.                     If Number($CmdLine[$j + 1]) > -181 Or Number($CmdLine[$j + 1]) < 181 Then $iRotation_WM = Number($CmdLine[$j + 1])
  1388.                 EndIf
  1389.             Case "-circrad"
  1390.                 If $j < $CmdLine[0] Then
  1391.                     If Int($CmdLine[$j + 1]) > 0 Then $iRadius_WM = Int($CmdLine[$j + 1])
  1392.                 EndIf
  1393.             Case "-format"
  1394.                 If $j < $CmdLine[0] Then
  1395.                     If StringInStr("jpg;png;bmp;gif;tif", $CmdLine[$j + 1]) Then $sSaveType = $CmdLine[$j + 1]
  1396.                 EndIf
  1397.             Case "-jpgqual"
  1398.                 If $j < $CmdLine[0] Then
  1399.                     If Int($CmdLine[$j + 1]) > -1 And Int($CmdLine[$j + 1]) < 101 Then $iJPGQual_WM = Int($CmdLine[$j + 1])
  1400.                 EndIf
  1401.             Case "-fill"
  1402.                 If $j < $CmdLine[0] Then
  1403.                     If Int($CmdLine[$j + 1]) = 1 Then $bFill = True
  1404.                 EndIf
  1405.             Case "-silent"
  1406.                 If $j < $CmdLine[0] Then
  1407.                     If Int($CmdLine[$j + 1]) = 1 Then $bSilent_run = True
  1408.                 EndIf
  1409.             Case "-loadfont"
  1410.                 If $j < $CmdLine[0] Then
  1411.                     If FileExists($CmdLine[$j + 1]) Then
  1412.                         $bFontMan = True
  1413.                         Local $hFile = _WinAPI_CreateFile($sFileFont, 2, 2, 2)
  1414.                         If $hFile = 0 Then ContinueCase
  1415.                         Local $lFile = FileGetSize($sFileFont)
  1416.                         Local $tBuffer = DllStructCreate("byte[" & $lFile + 1 & "]")
  1417.                         Local $pBuffer = DllStructGetPtr($tBuffer), $iFile
  1418.                         _WinAPI_ReadFile($hFile, $pBuffer, $lFile, $iFile)
  1419.                         _WinAPI_CloseHandle($hFile)
  1420.                         $sFileFontName = _GetFontInfoFromFilePtr($pBuffer)
  1421.                         DllCall($__g_hGDIPDll, 'int', 'GdipPrivateAddFontFile', 'ptr', $hCollection_WM, 'wstr', $sFileFont)
  1422.                     EndIf
  1423.                 EndIf
  1424.             Case "-tpbgcolor"
  1425.                 If $j < $CmdLine[0] Then
  1426.                     If Int($CmdLine[$j + 1]) > -1 And Int($CmdLine[$j + 1]) < 0x1000000 Then $iColorImgTP_WM = Int($CmdLine[$j + 1])
  1427.                 EndIf
  1428.         EndSwitch
  1429.     Next
  1430.  
  1431.     If $sText_WM = "" And Not $hBitmapStamp_WM Then
  1432.         MsgBox(16, "Error", "Mandatory value for paramter '-text' or '-bitmap' is missing.", 30)
  1433.         _Exit()
  1434.     EndIf
  1435.  
  1436.     $bW = _GDIPlus_ImageGetWidth($hBmp)
  1437.     $bH = _GDIPlus_ImageGetHeight($hBmp)
  1438.  
  1439.     If $hBitmapStamp_WM Then
  1440.         $sFX_Type = "Stamp"
  1441.         If Not $iRotation_WM Then $iRotation_WM = 100
  1442.     EndIf
  1443.  
  1444. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sFont_WM = ' & $sFont_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1445. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iFontSize_WM = ' & $iFontSize_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1446. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iColorFont_WM = ' & $iColorFont_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1447. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iColorFont_Embossed_WM = ' & $iColorFont_Embossed_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1448. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sFX_WM = ' & $sFX_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1449. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $fAlpha_WM = ' & $fAlpha_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1450. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iPos_WM = ' & $iPos_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1451. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iRotation_WM = ' & $iRotation_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1452. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iRadius_WM = ' & $iRadius_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1453. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSaveType = ' & $sSaveType & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1454. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iJPGQual_WM = ' & $iJPGQual_WM & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1455. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iManPosX = ' & $iManPosX & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1456. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iManPosY = ' & $iManPosY & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1457. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $bFill = ' & $bFill & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1458. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sFX_Type = ' & $sFX_Type & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1459. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sIn = ' & $sIn & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1460. ;~  ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sOut = ' & $sOut & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
  1461.  
  1462. ;~  _Exit()
  1463.  
  1464.     If $aBitmaps = -1 Then
  1465.         If ($sFX_Type = "Text" Or $sFX_Type = "Circular") And (Not $iFontSize_WM) Then $iFontSize_WM = Max(Ceiling(0.5 * $bW / StringLen($sText_WM)), $iMinFontSize_WM)
  1466.         If ($sFX_Type = "Text" Or $sFX_Type = "Circular") And (Not $iRadius_WM) Then $iRadius_WM = Min($iRadius_Max_WM, $iFontSize_WM * 3)
  1467.         Switch $sFX_Type
  1468.             Case "Text"
  1469.                 $hBmp_Preview_WM = _GDIPlus_WatermarkImage($hBmp, $sText_WM, $iManPosX, $iManPosY, $iPos_WM, $sFont_WM, $iFontSize_WM, $iRotation_WM, $iColorFont_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, True, $sFileFontName)
  1470.             Case "Circular"
  1471.                 $hBmp_Preview_WM = _GDIPlus_CreateRotatedLetters($hBmp, $sText_WM, $iPos_WM, $iFontSize_WM, $iRadius_WM, $sFont_WM, $iColorFont_WM, $fAlpha_WM, $iRotation_WM, $iAdjX_WM, $iAdjY_WM, $sFileFontName)
  1472.             Case "Stamp"
  1473.                 $hBmp_Preview_WM = _GDIPlus_StampImage($hBmp, $hBitmapStamp_WM, $iPos_WM, $iRotation_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, $bFill)
  1474.         EndSwitch
  1475.         If $sOut = "" Then $sOut = StringTrimRight($sIn, 4) & "_watermarked." & $sSaveType
  1476.         _GDIPlus_SaveBitmap($sOut, WinGetHandle(AutoItWinGetTitle()), $bSilent_run, True, $iColorImgTP_WM)
  1477.         _GDIPlus_BitmapDispose($hBmp_Preview_WM)
  1478.         _GDIPlus_BitmapDispose($hBmp)
  1479.     Else
  1480.         Local $sNewFileName
  1481.         SplashTextOn("Process", "Processing 1 / 1" & @LF & @LF & "File: ", 500, 100, Default, Default, 4 + 16 + 32)
  1482.         Local $iUB = UBound($aBitmaps) - 1
  1483.         For $i = 0 To $iUB
  1484.             $hBmp = _GDIPlus_BitmapCreateFromFile($aBitmaps[$i])
  1485.             $bW = _GDIPlus_ImageGetWidth($hBmp)
  1486.             $bH = _GDIPlus_ImageGetHeight($hBmp)
  1487.             If ($sFX_Type = "Text" Or $sFX_Type = "Circular") And (Not $iFontSize_WM) Then $iFontSize_WM = Max(Ceiling(0.5 * $bW / StringLen($sText_WM)), $iMinFontSize_WM)
  1488.             If ($sFX_Type = "Text" Or $sFX_Type = "Circular") And (Not $iRadius_WM) Then $iRadius_WM = Min($iRadius_Max_WM, $iFontSize_WM * 3)
  1489.             Switch $sFX_Type
  1490.                 Case "Text"
  1491.                     $hBmp_Preview_WM = _GDIPlus_WatermarkImage($hBmp, $sText_WM, $iManPosX, $iManPosY, $iPos_WM, $sFont_WM, $iFontSize_WM, $iRotation_WM, $iColorFont_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, True, $sFileFontName)
  1492.                 Case "Circular"
  1493.                     $hBmp_Preview_WM = _GDIPlus_CreateRotatedLetters($hBmp, $sText_WM, $iPos_WM, $iFontSize_WM, $iRadius_WM, $sFont_WM, $iColorFont_WM, $fAlpha_WM, $iRotation_WM, $iAdjX_WM, $iAdjY_WM, $sFileFontName)
  1494.                 Case "Stamp"
  1495.                     $hBmp_Preview_WM = _GDIPlus_StampImage($hBmp, $hBitmapStamp_WM, $iPos_WM, $iRotation_WM, $fAlpha_WM, $iAdjX_WM, $iAdjY_WM, $bFill)
  1496.             EndSwitch
  1497.             $sNewFileName = StringTrimRight($aBitmaps[$i], 4) & "_watermarked." & $sSaveType
  1498.             _GDIPlus_SaveBitmap($sNewFileName, WinGetHandle(AutoItWinGetTitle()), $bSilent_run, True, $iColorImgTP_WM)
  1499.             _GDIPlus_BitmapDispose($hBmp_Preview_WM)
  1500.             _GDIPlus_BitmapDispose($hBmp)
  1501.             ControlSetText("Process", "", "Static1", "Processing " & $i + 1 & " / " & $iUB & @LF & @LF & "File: " & $sNewFileName)
  1502.         Next
  1503.         SplashOff()
  1504.     EndIf
  1505.     _Exit()
  1506. EndFunc   ;==>Cmd
  1507.  
  1508. Func GetFilesFromFolder($sFolder, $sFilter, $bRec = True, $b0Base = True)
  1509.     Local $iPID
  1510.     If $bRec Then
  1511.         $iPID = Run(@ComSpec & " /c dir /b /s /on " & $sFilter, $sFolder, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
  1512.     Else
  1513.         $iPID = Run(@ComSpec & " /c dir /b " & $sFilter, $sFolder, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
  1514.     EndIf
  1515.     If Not $iPID Then Return SetError(1, 0, 0)
  1516.     Local $sImages
  1517.     While 1
  1518.         $sImages &= StdoutRead($iPID)
  1519.         If @error Then ExitLoop
  1520.     WEnd
  1521.     Local $iFlag = 2, $i, $j
  1522.     If Not $b0Base Then $iFlag = 0
  1523.     Local $aFiles = StringSplit(StringStripCR($sImages), @LF, $iFlag)
  1524.     If @error Then Return SetError(2, 0, 0)
  1525.     _ArrayDelete($aFiles, UBound($aFiles) - 1)
  1526.     If Not $b0Base Then $aFiles[0] = UBound($aFiles) - 1
  1527.     If Not $bRec Then
  1528.         If $b0Base Then
  1529.             $i = 0
  1530.         Else
  1531.             $i = 1
  1532.         EndIf
  1533.         If StringRight($sFolder, 1) <> "\" Then $sFolder &= "\"
  1534.         For $j = $i To UBound($aFiles) - 1
  1535.             $aFiles[$j] = $sFolder & $aFiles[$j]
  1536.         Next
  1537.     EndIf
  1538.     Return $aFiles
  1539. EndFunc   ;==>GetFilesFromFolder
  1540.  
  1541. Func _Exit()
  1542.     DllCall($__g_hGDIPDll, 'int', 'GdipDeletePrivateFontCollection', 'ptr*', $hCollection_WM)
  1543.     If $hBitmapUndo_WM Then _GDIPlus_BitmapDispose($hBitmapUndo_WM)
  1544.     If $hBmp Then _GDIPlus_BitmapDispose($hBmp)
  1545.     If $hBitmapStamp_WM Then _GDIPlus_BitmapDispose($hBitmapStamp_WM)
  1546.     _GDIPlus_Shutdown()
  1547.     Exit
  1548. EndFunc   ;==>_Exit
  1549.  
  1550. Func _GDIPlus_SaveBitmap($sFilename_WM, $hGUI_WM, $bSilent = False, $bCMD = False, $iTpColor = 0x000000)
  1551.     Local $bError = False, $bJPG = True, $bResult, $hBmp_BG, $bResult
  1552.     Switch $sSaveType
  1553.         Case "jpg"
  1554.             $bJPG = True
  1555.             If StringRight($sFilename_WM, 4) <> ".jpg" Then $sFilename_WM &= ".jpg"
  1556.             If FileExists($sFilename_WM) And $bSilent = False Then
  1557.                 Local $iChoice = MsgBox(4 + 32 + 256 + 262144, "Warning", "'" & $sFilename_WM & "' already exists!" & @CRLF & @CRLF & "Overwrite file?", 0, $hGUI_WM)
  1558.                 If $iChoice = 7 Then Return 0
  1559.             EndIf
  1560.             Local $sCLSID = _GDIPlus_EncodersGetCLSID("JPG")
  1561.             Local $tParams = _GDIPlus_ParamInit(1)
  1562.             Local $tData = DllStructCreate("int Quality")
  1563.             If $bCMD Then
  1564.                 DllStructSetData($tData, "Quality", $iJPGQual_WM)
  1565.             Else
  1566.                 DllStructSetData($tData, "Quality", GUICtrlRead($idInputJPGQual_WM))
  1567.             EndIf
  1568.             Local $pData = DllStructGetPtr($tData)
  1569.             _GDIPlus_ParamAdd($tParams, $GDIP_EPGQUALITY, 1, $GDIP_EPTLONG, $pData)
  1570.             Local $pParams = DllStructGetPtr($tParams)
  1571.             Local $bResult
  1572.             If $bCMD Then
  1573.                 If $iTpColor Then
  1574.                     $hBmp_BG = _GDIPlus_ChangeBGColor($hBmp_Preview_WM, 0xFF000000 + $iTpColor)
  1575.                     $bResult = _GDIPlus_ImageSaveToFileEx($hBmp_BG, $sFilename_WM, $sCLSID, $pParams)
  1576.                     _GDIPlus_BitmapDispose($hBmp_BG)
  1577.                 Else
  1578.                     $bResult = _GDIPlus_ImageSaveToFileEx($hBmp_Preview_WM, $sFilename_WM, $sCLSID, $pParams)
  1579.                 EndIf
  1580.             Else
  1581.                 If $iTpColor Then
  1582.                     $hBmp_BG = _GDIPlus_ChangeBGColor($hBmp, 0xFF000000 + $iTpColor)
  1583.                     $bResult = _GDIPlus_ImageSaveToFileEx($hBmp_BG, $sFilename_WM, $sCLSID, $pParams)
  1584.                     _GDIPlus_BitmapDispose($hBmp_BG)
  1585.                 Else
  1586.                     $bResult = _GDIPlus_ImageSaveToFileEx($hBmp, $sFilename_WM, $sCLSID, $pParams)
  1587.                 EndIf
  1588.             EndIf
  1589.             If Not $bResult Then
  1590.                 $bError = True
  1591.             Else
  1592.                 $bError = False
  1593.             EndIf
  1594.             $tData = ""
  1595.             $tParams = ""
  1596.         Case "bmp"
  1597.             If StringRight($sFilename_WM, 4) <> ".bmp" Then $sFilename_WM &= ".bmp"
  1598.             $bJPG = False
  1599.         Case "gif"
  1600.             If StringRight($sFilename_WM, 4) <> ".gif" Then $sFilename_WM &= ".gif"
  1601.             $bJPG = False
  1602.         Case "png"
  1603.             If StringRight($sFilename_WM, 4) <> ".png" Then $sFilename_WM &= ".png"
  1604.             $bJPG = False
  1605.         Case "tif"
  1606.             If StringRight($sFilename_WM, 4) <> ".tif" Then $sFilename_WM &= ".tif"
  1607.             $bJPG = False
  1608.     EndSwitch
  1609.     If Not $bJPG Then
  1610.         If FileExists($sFilename_WM) And $bSilent = True Then
  1611.             Local $iChoice = MsgBox(4 + 32 + 256 + 262144, "Warning", "'" & $sFilename_WM & "' already exists!" & @CRLF & @CRLF & "Overwrite file?", 0, $hGUI_WM)
  1612.             If $iChoice = 7 Then Return 0
  1613.         EndIf
  1614.         If $iTpColor Then
  1615.             $hBmp_BG = _GDIPlus_ChangeBGColor($hBmp, 0xFF000000 + $iTpColor)
  1616.             $bResult = _GDIPlus_ImageSaveToFile($hBmp_BG, $sFilename_WM)
  1617.             _GDIPlus_BitmapDispose($hBmp_BG)
  1618.         Else
  1619.             $bResult = _GDIPlus_ImageSaveToFile($hBmp, $sFilename_WM)
  1620.         EndIf
  1621.         If Not $bResult Then
  1622.             $bError = True
  1623.         Else
  1624.             $bError = False
  1625.         EndIf
  1626.     EndIf
  1627.     If $bError Then
  1628.         MsgBox(16 + 262144, "ERROR", "An error has occured  - the image couldn't saved!", 30, $hGUI_WM)
  1629.         Return 0
  1630.     EndIf
  1631.     If Not $bSilent Then MsgBox(64 + 262144, "Information", "Image successfully saved to '" & $sFilename_WM & "'", 10, $hGUI_WM)
  1632.     Return 1
  1633. EndFunc   ;==>_GDIPlus_SaveBitmap
  1634.  
  1635. Func _GDIPlus_ChangeBGColor($hBitmap, $iBGColor)
  1636.     Local $iW_TP = _GDIPlus_ImageGetWidth($hBitmap), $iH_TP = _GDIPlus_ImageGetHeight($hBitmap)
  1637.     Local $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iW_TP, "int", $iH_TP, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0) ;create empty 32 bit bitmap
  1638.     Local $hBmp_TP = $aResult[6]
  1639.     Local $hCtxt_TP = _GDIPlus_ImageGetGraphicsContext($hBmp_TP)
  1640.     _GDIPlus_GraphicsClear($hCtxt_TP, $iBGColor)
  1641.     _GDIPlus_GraphicsDrawImageRect($hCtxt_TP, $hBitmap, 0, 0, $iW_TP, $iH_TP)
  1642.     _GDIPlus_GraphicsDispose($hCtxt_TP)
  1643.     Return $hBmp_TP
  1644. EndFunc   ;==>_GDIPlus_ChangeBGColor
  1645.  
  1646. Func _GDIPlus_StampImage($hBmp, $hBmp_Stamp, $iPos, $iRotation_WM = 100, $fAlpha = 0.25, $iAdjX = 0, $iAdjY = 0, $bFill = False, $iMinW = 8, $iMinH = 8)
  1647.     If $fAlpha < 0 Then $fAlpha = 0
  1648.     If $fAlpha > 1 Then $fAlpha = 1
  1649.     Local $iW = _GDIPlus_ImageGetWidth($hBmp), $iH = _GDIPlus_ImageGetHeight($hBmp)
  1650.     If $hBitmap_WM Then _GDIPlus_BitmapDispose($hBitmap_WM)
  1651.     $hBitmap_WM = _GDIPlus_BitmapClone($hBmp, $iW, $iH)
  1652.     Local $hCtxt_Stamp = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM)
  1653.     DllCall($__g_hGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtxt_Stamp, "int", 7)
  1654.     Local $iW_Stamp = _GDIPlus_ImageGetWidth($hBmp_Stamp), $iH_Stamp = _GDIPlus_ImageGetHeight($hBmp_Stamp)
  1655.     Local $tColorMatrix = _GDIPlus_ColorMatrixCreateTranslate(0, 0, 0, -(1 - $fAlpha))
  1656.     Local $pColorMatrix = DllStructGetPtr($tColorMatrix)
  1657.     _GDIPlus_ImageAttributesSetColorMatrix($hAttribute_Alpha, 0, True, $pColorMatrix)
  1658.     Local $fSize = $iRotation_WM / 100, $hBrush_Fill
  1659.     If $bFill Then
  1660.         Local $hBmp_Fill = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iW, "int", $iH, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1661.         $hBmp_Fill = $hBmp_Fill[6]
  1662.         Local $hCtxt_Fill = _GDIPlus_ImageGetGraphicsContext($hBmp_Fill)
  1663.         If $fSize <> 1.00 Then
  1664.             Local $iWn = Int($iW_Stamp * $fSize), $iHn = Int($iH_Stamp * $fSize)
  1665.             Local $hBmp_tmp = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWn, "int", $iHn, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1666.             $hBmp_tmp = $hBmp_tmp[6]
  1667.             Local $hCtxt_tmp = _GDIPlus_ImageGetGraphicsContext($hBmp_tmp)
  1668.             DllCall($__g_hGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtxt_tmp, "int", 7)
  1669.             _GDIPlus_GraphicsDrawImageRect($hCtxt_tmp, $hBmp_Stamp, 0, 0, $iWn, $iHn)
  1670.             $hBrush_Fill = DllCall($__g_hGDIPDll, "uint", "GdipCreateTexture", "ptr", $hBmp_tmp, "int", 0, "int*", 0)
  1671.             $hBrush_Fill = $hBrush_Fill[3]
  1672.             _GDIPlus_BitmapDispose($hBmp_tmp)
  1673.             _GDIPlus_GraphicsDispose($hCtxt_tmp)
  1674.         Else
  1675.             $hBrush_Fill = DllCall($__g_hGDIPDll, "uint", "GdipCreateTexture", "ptr", $hBmp_Stamp, "int", 0, "int*", 0)
  1676.             $hBrush_Fill = $hBrush_Fill[3]
  1677.         EndIf
  1678.         _GDIPlus_GraphicsFillRect($hCtxt_Fill, 0, 0, $iW, $iH, $hBrush_Fill)
  1679.         _GDIPlus_GraphicsDrawImageRectRect($hCtxt_Stamp, $hBmp_Fill, 0, 0, $iW, $iH, $iAdjX, $iAdjY, $iW, $iH, $hAttribute_Alpha)
  1680.         _GDIPlus_BrushDispose($hBrush_Fill)
  1681.         _GDIPlus_GraphicsDispose($hCtxt_Fill)
  1682.         _GDIPlus_BitmapDispose($hBmp_Fill)
  1683.     Else
  1684.         Local $iX, $iY, $fW = $iW_Stamp * $fSize, $fH = $iH_Stamp * $fSize, $fX = 0, $fY = 0
  1685.         Switch $iPos
  1686.             Case 1
  1687.                 $iX = Min($iMinW, $iW)
  1688.                 $iY = Min($iMinH, $iH)
  1689.             Case 2
  1690.                 $iX = Abs(($iW - $iW_Stamp) / 2)
  1691.                 $iY = Min($iMinH, $iH)
  1692.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize) / 2
  1693.             Case 3
  1694.                 $iX = Abs($iW - $iW_Stamp - Min($iMinW, $iW))
  1695.                 $iY = Min($iMinH, $iH)
  1696.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize)
  1697.             Case 4
  1698.                 $iX = Min($iMinW, $iW)
  1699.                 $iY = Abs(($iH - $iH_Stamp) / 2)
  1700.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize) / 2
  1701.             Case 5
  1702.                 $iX = Abs(($iW - $iW_Stamp) / 2)
  1703.                 $iY = Abs(($iH - $iH_Stamp) / 2)
  1704.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize) / 2
  1705.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize) / 2
  1706.             Case 6
  1707.                 $iX = Abs($iW - $iW_Stamp - Min($iMinW, $iW))
  1708.                 $iY = Abs(($iH - $iH_Stamp) / 2)
  1709.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize)
  1710.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize) / 2
  1711.             Case 7
  1712.                 $iX = Min($iMinW, $iW)
  1713.                 $iY = Abs($iH - Min($iMinH, $iH) - $iH_Stamp)
  1714.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize)
  1715.             Case 8
  1716.                 $iX = Abs(($iW - $iW_Stamp) / 2)
  1717.                 $iY = Abs($iH - Min($iMinH, $iH) - $iH_Stamp)
  1718.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize) / 2
  1719.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize)
  1720.             Case 9
  1721.                 $iX = Abs($iW - $iW_Stamp - Min($iMinW, $iW))
  1722.                 $iY = Abs($iH - Min($iMinH, $iH) - $iH_Stamp)
  1723.                 $fX = ($iW_Stamp - $iW_Stamp * $fSize)
  1724.                 $fY = ($iH_Stamp - $iH_Stamp * $fSize)
  1725.         EndSwitch
  1726.         _GDIPlus_GraphicsDrawImageRectRect($hCtxt_Stamp, $hBmp_Stamp, 0, 0, $iW_Stamp, $iH_Stamp, $iX + $fX + $iAdjX, $iY + $fY + $iAdjY, $fW, $fH, $hAttribute_Alpha)
  1727.     EndIf
  1728.     _GDIPlus_GraphicsDispose($hCtxt_Stamp)
  1729.     Return $hBitmap_WM
  1730. EndFunc   ;==>_GDIPlus_StampImage
  1731.  
  1732. Func _GDIPlus_WatermarkImage($hBitmap, $sText, $iX, $iY, $iPos = 0, $sFontName = "Arial", $iFontSize = 16, $fAngle = 0, $iFontColor = 0xFFFFFF, $fAlpha = 0.25, $iAdjX = 0, $iAdjY = 0, $bLineBreak = True, $sFileFontName = 0)
  1733.     If Not $hBitmap Then Return 0
  1734.     If $fAlpha < 0 Then $fAlpha = 0
  1735.     If $fAlpha > 1 Then $fAlpha = 1
  1736.     Local $iW = _GDIPlus_ImageGetWidth($hBitmap), $iH = _GDIPlus_ImageGetHeight($hBitmap)
  1737.     _GDIPlus_BitmapDispose($hBitmap_WM)
  1738.     $hBitmap_WM = _GDIPlus_BitmapClone($hBitmap, $iW, $iH)
  1739.     Local $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM)
  1740.     _GDIPlus_GraphicsSetSmoothingMode($hCtxt, 2)
  1741.     DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt, "int", 4)
  1742.     Local $hBrush = _GDIPlus_BrushCreateSolid(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  1743.     Local $hFormat = _GDIPlus_StringFormatCreate(BitOR(0x0400, 0x0800))
  1744.     Local $hFamily
  1745.     If $bFontMan Then
  1746.         $hFamily = DllCall($__g_hGDIPDll, 'int', 'GdipCreateFontFamilyFromName', 'wstr', $sFileFontName, 'ptr', $hCollection_WM, 'int*', 0)
  1747.         $hFamily = $hFamily[3]
  1748.     Else
  1749.         $hFamily = _GDIPlus_FontFamilyCreate($sFontName)
  1750.     EndIf
  1751.     Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize, 0)
  1752.     Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
  1753.     Local $aMeasure = _GDIPlus_GraphicsMeasureString($hCtxt, $sText, $hFont, $tLayout, $hFormat)
  1754.     If Not @error Then
  1755.         Local $iWTxt, $iHTxt, $aResult, $hPath_WM, $iPenSize
  1756.         If Not Int($fAngle) Then
  1757.             $iWTxt = Ceiling(DllStructGetData($aMeasure[0], "width"))
  1758.             $iHTxt = Ceiling(DllStructGetData($aMeasure[0], "height"))
  1759.             If $bLineBreak And $iWTxt > $iW * 0.85 Then
  1760.                 DllStructSetData($tLayout, "width", $iW * 0.95)
  1761.                 DllStructSetData($tLayout, "height", 0)
  1762.                 $aMeasure = _GDIPlus_GraphicsMeasureString($hCtxt, $sText, $hFont, $tLayout, $hFormat)
  1763.                 $iWTxt = Ceiling(DllStructGetData($aMeasure[0], "width"))
  1764.                 $iHTxt = Ceiling(DllStructGetData($aMeasure[0], "height"))
  1765.             EndIf
  1766.  
  1767.             If Not Int($iPos) Or Int($iPos) > 9 Then
  1768.                 DllStructSetData($tLayout, "x", $iX)
  1769.                 DllStructSetData($tLayout, "y", $iY)
  1770.             Else
  1771.                 DllStructSetData($tLayout, "x", $iFontSize / 2 + $iAdjX)
  1772.                 DllStructSetData($tLayout, "width", $iW - $iFontSize)
  1773.                 Switch $iPos
  1774.                     Case 1 To 3
  1775.                         DllStructSetData($tLayout, "y", $iAdjY)
  1776.                         _GDIPlus_StringFormatSetAlign($hFormat, $iPos - 1)
  1777.                     Case 4 To 6
  1778.                         DllStructSetData($tLayout, "y", ($iH - $iHTxt) / 2 + $iAdjY)
  1779.                         _GDIPlus_StringFormatSetAlign($hFormat, $iPos - 4)
  1780.                     Case 7 To 9
  1781.                         DllStructSetData($tLayout, "y", $iH - $iHTxt + $iAdjY)
  1782.                         _GDIPlus_StringFormatSetAlign($hFormat, $iPos - 7)
  1783.                 EndSwitch
  1784.             EndIf
  1785.             Switch $sFX_WM
  1786.                 Case "Default"
  1787.                     _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  1788.                 Case "Outlined"
  1789.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  1790.                     $hPath_WM = $aResult[2]
  1791.                     Switch $iFontSize
  1792.                         Case 4 To 64
  1793.                             $iPenSize = 1
  1794.                         Case 65 To 99
  1795.                             $iPenSize = 2
  1796.                         Case 100 To 127
  1797.                             $iPenSize = 4
  1798.                         Case 128 To 160
  1799.                             $iPenSize = 6
  1800.                         Case Else
  1801.                             $iPenSize = 8
  1802.                     EndSwitch
  1803.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $sText, "int", -1, "handle", $hFamily, "int", 0, "float", $iFontSize * 1.3333333, "ptr", DllStructGetPtr($tLayout), "handle", $hFormat)
  1804.                     Local $hPen_WM = _GDIPlus_PenCreate(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor, $iPenSize)
  1805.                     DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $hCtxt, "handle", $hPen_WM, "handle", $hPath_WM)
  1806.                     DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  1807.                     _GDIPlus_PenDispose($hPen_WM)
  1808.                 Case "OutlinedFilled"
  1809.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  1810.                     $hPath_WM = $aResult[2]
  1811.                     Local $hPen_WM = _GDIPlus_PenCreate(0xFF000000, Max(1, Int($iFontSize / 11)))
  1812.                     Local $hBrush_WM = _GDIPlus_BrushCreateSolid(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  1813.                     DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $sText, "int", -1, "handle", $hFamily, "int", 0, "float", $iFontSize * 1.3333333, "ptr", DllStructGetPtr($tLayout), "handle", $hFormat)
  1814.                     DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $hCtxt, "handle", $hPen_WM, "handle", $hPath_WM)
  1815.                     DllCall($__g_hGDIPDll, "uint", "GdipFillPath", "handle", $hCtxt, "handle", $hBrush_WM, "handle", $hPath_WM)
  1816.                     DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  1817.                     _GDIPlus_PenDispose($hPen_WM)
  1818.                     _GDIPlus_BrushDispose($hBrush_WM)
  1819.                 Case "Embossed"
  1820.                     Local $iDelta
  1821.                     If $iFontSize < 100 Then
  1822.                         $iDelta = 2
  1823.                     Else
  1824.                         $iDelta = 4
  1825.                     EndIf
  1826.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + 0xFFFFFF)
  1827.                     _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  1828.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + 0x303030)
  1829.                     DllStructSetData($tLayout, "x", DllStructGetData($tLayout, "x") + $iDelta)
  1830.                     DllStructSetData($tLayout, "y", DllStructGetData($tLayout, "y") + $iDelta)
  1831.                     _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  1832.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  1833.                     DllStructSetData($tLayout, "x", DllStructGetData($tLayout, "x") - $iDelta / 2)
  1834.                     DllStructSetData($tLayout, "y", DllStructGetData($tLayout, "y") - $iDelta / 2)
  1835.                     _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  1836.             EndSwitch
  1837.         Else
  1838.             Local $iQ
  1839.             $fAngle = Mod($fAngle, 360)
  1840.             $iWTxt = DllStructGetData($aMeasure[0], "width")
  1841.             $iHTxt = DllStructGetData($aMeasure[0], "height")
  1842.             If $iWTxt > $iHTxt Then
  1843.                 $iQ = $iWTxt
  1844.             Else
  1845.                 $iQ = $iHTxt
  1846.             EndIf
  1847.             Local $hBitmap_WM_Rot, $hCtxt_Rot, $hMatrix, $iR
  1848.  
  1849.             If $iPos Then
  1850.                 Switch $iPos
  1851.                     Case 1
  1852.                         $iQ *= 3.25
  1853.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1854.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1855.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1856.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1857.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1858.                         $hMatrix = _GDIPlus_MatrixCreate()
  1859.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ - $iFontSize - $iWTxt) / 2, $iQ / 2)
  1860.                         _GDIPlus_MatrixRotate($hMatrix, $fAngle, False)
  1861.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ + $iFontSize + $iWTxt) / 2, -$iQ / 2)
  1862.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1863.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2) ;position of the text within rotation bitmap
  1864.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1865.                         $iX = (-$iQ + $iFontSize + $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1866.                         $iY = (-$iQ + $iHTxt) / 2 + $iAdjY
  1867.                     Case 2
  1868.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1869.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1870.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1871.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1872.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1873.                         $hMatrix = _GDIPlus_MatrixCreate()
  1874.                         _GDIPlus_MatrixTranslate($hMatrix, $iQ / 2, $iQ / 2)
  1875.                         _GDIPlus_MatrixRotate($hMatrix, $fAngle, False)
  1876.                         _GDIPlus_MatrixTranslate($hMatrix, -$iQ / 2, -$iQ / 2)
  1877.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1878.                         DllStructSetData($tLayout, "x", 0)
  1879.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1880.                         $iX = ($iFontSize + $iW - $iQ) / 2 + $iAdjX
  1881.                         $iR = $iWTxt / 2 ;Sqrt((($iWTxt + $iHTxt) / 2) ^ 2)
  1882.                         $iY = -$iR + $iFontSize / 1.25 + Cos((Abs($fAngle) - 90) / $fRad) * $iR * 0.9 + $iAdjY
  1883.                     Case 3
  1884.                         $iQ *= 3.25
  1885.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1886.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1887.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1888.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1889.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1890.                         $hMatrix = _GDIPlus_MatrixCreate()
  1891.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ + $iFontSize + $iWTxt) / 2, $iQ / 2)
  1892.                         _GDIPlus_MatrixRotate($hMatrix, -$fAngle, False)
  1893.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ - $iFontSize - $iWTxt) / 2, -$iQ / 2)
  1894.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1895.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2)
  1896.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1897.                         $iX = $iW + (-$iQ - $iFontSize - $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1898.                         $iY = (-$iQ + $iHTxt) / 2 + $iAdjY
  1899.                     Case 4
  1900.                         $iQ *= 3.25
  1901.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1902.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1903.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1904.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1905.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1906.                         $hMatrix = _GDIPlus_MatrixCreate()
  1907.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ - $iFontSize - $iWTxt) / 2, $iQ / 2)
  1908.                         _GDIPlus_MatrixRotate($hMatrix, $fAngle, False)
  1909.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ + $iFontSize + $iWTxt) / 2, -$iQ / 2)
  1910.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1911.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2)
  1912.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1913.                         $iX = (-$iQ + $iFontSize + $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1914.                         $iY = ($iH - $iQ) / 2 + $iAdjY
  1915.                     Case 5
  1916.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1917.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1918.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1919.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1920.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1921.                         $hMatrix = _GDIPlus_MatrixCreate()
  1922.                         _GDIPlus_MatrixTranslate($hMatrix, $iQ / 2, $iQ / 2)
  1923.                         _GDIPlus_MatrixRotate($hMatrix, $fAngle, False)
  1924.                         _GDIPlus_MatrixTranslate($hMatrix, -$iQ / 2, -$iQ / 2)
  1925.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1926.                         DllStructSetData($tLayout, "x", 0)
  1927.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1928.                         $iX = ($iW - $iQ) / 2 + $iAdjX
  1929.                         $iY = ($iH - $iQ) / 2 + $iAdjY
  1930.                     Case 6
  1931.                         $iQ *= 3.25
  1932.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1933.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1934.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1935.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1936.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1937.                         $hMatrix = _GDIPlus_MatrixCreate()
  1938.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ + $iFontSize + $iWTxt) / 2, $iQ / 2)
  1939.                         _GDIPlus_MatrixRotate($hMatrix, -$fAngle, False)
  1940.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ - $iFontSize - $iWTxt) / 2, -$iQ / 2)
  1941.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1942.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2)
  1943.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1944.                         $iX = $iW + (-$iQ - $iFontSize - $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1945.                         $iY = ($iH - $iQ) / 2 + $iAdjY
  1946.                     Case 7
  1947.                         $iQ *= 3.25
  1948.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1949.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1950.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1951.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1952.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1953.                         $hMatrix = _GDIPlus_MatrixCreate()
  1954.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ - $iFontSize - $iWTxt) / 2, $iQ / 2)
  1955.                         _GDIPlus_MatrixRotate($hMatrix, $fAngle, False)
  1956.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ + $iFontSize + $iWTxt) / 2, -$iQ / 2)
  1957.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1958.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2)
  1959.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1960.                         $iX = (-$iQ + $iFontSize + $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1961.                         $iY = $iH + (-$iQ - $iHTxt) / 2 + $iAdjY
  1962.                     Case 8
  1963.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1964.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1965.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1966.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1967.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1968.                         $hMatrix = _GDIPlus_MatrixCreate()
  1969.                         _GDIPlus_MatrixTranslate($hMatrix, $iQ / 2, $iQ / 2)
  1970.                         _GDIPlus_MatrixRotate($hMatrix, -$fAngle, False)
  1971.                         _GDIPlus_MatrixTranslate($hMatrix, -$iQ / 2, -$iQ / 2)
  1972.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1973.                         DllStructSetData($tLayout, "x", 0)
  1974.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1975.                         $iX = ($iFontSize + $iW - $iQ) / 2 + $iAdjX
  1976.                         $iR = $iWTxt / 2 ;Sqrt((($iWTxt + $iHTxt) / 2) ^ 2)
  1977.                         $iY = $iH - $iR - $iFontSize / 1.25 - Cos((Abs($fAngle) - 90) / $fRad) * $iR * 0.9 + $iAdjY
  1978.                     Case 9
  1979.                         $iQ *= 3.25
  1980.                         $hBitmap_WM_Rot = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iQ, "int", $iQ, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  1981.                         $hBitmap_WM_Rot = $hBitmap_WM_Rot[6]
  1982.                         $hCtxt_Rot = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM_Rot)
  1983.                         _GDIPlus_GraphicsSetSmoothingMode($hCtxt_Rot, 2)
  1984.                         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt_Rot, "int", 4)
  1985.                         $hMatrix = _GDIPlus_MatrixCreate()
  1986.                         _GDIPlus_MatrixTranslate($hMatrix, ($iQ + $iFontSize + $iWTxt) / 2, $iQ / 2)
  1987.                         _GDIPlus_MatrixRotate($hMatrix, -$fAngle, False)
  1988.                         _GDIPlus_MatrixTranslate($hMatrix, (-$iQ - $iFontSize - $iWTxt) / 2, -$iQ / 2)
  1989.                         _GDIPlus_GraphicsSetTransform($hCtxt_Rot, $hMatrix)
  1990.                         DllStructSetData($tLayout, "x", ($iQ - $iWTxt) / 2)
  1991.                         DllStructSetData($tLayout, "y", ($iQ - $iHTxt) / 2)
  1992.                         $iX = $iW + (-$iQ - $iFontSize - $iWTxt) / 2 + $iAdjX ;position of the rotated bitmap onto the main bitmap
  1993.                         $iY = $iH + (-$iQ - $iHTxt) / 2 + $iAdjY
  1994.                 EndSwitch
  1995.             EndIf
  1996.  
  1997.             Switch $sFX_WM
  1998.                 Case "Default"
  1999.                     _GDIPlus_GraphicsDrawStringEx($hCtxt_Rot, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  2000.                 Case "Outlined"
  2001.                     Local $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  2002.                     Local $hPath_WM = $aResult[2], $iPenSize
  2003.                     Switch $iFontSize
  2004.                         Case 4 To 64
  2005.                             $iPenSize = 1
  2006.                         Case 65 To 99
  2007.                             $iPenSize = 2
  2008.                         Case 100 To 127
  2009.                             $iPenSize = 4
  2010.                         Case 128 To 160
  2011.                             $iPenSize = 6
  2012.                         Case Else
  2013.                             $iPenSize = 8
  2014.                     EndSwitch
  2015.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $sText, "int", -1, "handle", $hFamily, "int", 0, "float", $iFontSize * 1.3333333, "struct*", DllStructGetPtr($tLayout), "handle", $hFormat)
  2016.                     Local $hPen_WM = _GDIPlus_PenCreate(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor, $iPenSize)
  2017.                     DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $hCtxt_Rot, "handle", $hPen_WM, "handle", $hPath_WM)
  2018.                     DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  2019.                     _GDIPlus_PenDispose($hPen_WM)
  2020.                 Case "OutlinedFilled"
  2021.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  2022.                     $hPath_WM = $aResult[2]
  2023.                     Local $hPen_WM = _GDIPlus_PenCreate(0xFF000000, Max(1, Int($iFontSize / 11)))
  2024.                     Local $hBrush_WM = _GDIPlus_BrushCreateSolid(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  2025.                     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $sText, "int", -1, "handle", $hFamily, "int", 0, "float", $iFontSize * 1.3333333, "struct*", DllStructGetPtr($tLayout), "handle", $hFormat)
  2026.                     DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $hCtxt_Rot, "handle", $hPen_WM, "handle", $hPath_WM)
  2027.                     DllCall($__g_hGDIPDll, "uint", "GdipFillPath", "handle", $hCtxt_Rot, "handle", $hBrush_WM, "handle", $hPath_WM)
  2028.                     DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  2029.                     _GDIPlus_PenDispose($hPen_WM)
  2030.                     _GDIPlus_BrushDispose($hBrush_WM)
  2031.                 Case "Embossed"
  2032.                     Local $iDelta
  2033.                     If $iFontSize < 100 Then
  2034.                         $iDelta = 2
  2035.                     Else
  2036.                         $iDelta = 4
  2037.                     EndIf
  2038.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + 0xFFFFFF)
  2039.                     _GDIPlus_GraphicsDrawStringEx($hCtxt_Rot, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  2040.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + 0x303030)
  2041.                     DllStructSetData($tLayout, "x", DllStructGetData($tLayout, "x") + $iDelta)
  2042.                     DllStructSetData($tLayout, "y", DllStructGetData($tLayout, "y") + $iDelta)
  2043.                     _GDIPlus_GraphicsDrawStringEx($hCtxt_Rot, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  2044.                     _GDIPlus_BrushSetSolidColor($hBrush, BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  2045.                     DllStructSetData($tLayout, "x", DllStructGetData($tLayout, "x") - $iDelta / 2)
  2046.                     DllStructSetData($tLayout, "y", DllStructGetData($tLayout, "y") - $iDelta / 2)
  2047.                     _GDIPlus_GraphicsDrawStringEx($hCtxt_Rot, $sText, $hFont, $tLayout, $hFormat, $hBrush)
  2048.             EndSwitch
  2049.  
  2050.             _GDIPlus_GraphicsDrawImageRect($hCtxt, $hBitmap_WM_Rot, $iX, $iY, $iQ, $iQ)
  2051.             _GDIPlus_MatrixDispose($hMatrix)
  2052.             _GDIPlus_GraphicsDispose($hCtxt_Rot)
  2053.             _GDIPlus_BitmapDispose($hBitmap_WM_Rot)
  2054.         EndIf
  2055.     EndIf
  2056.     _GDIPlus_FontDispose($hFont)
  2057.     _GDIPlus_FontFamilyDispose($hFamily)
  2058.     _GDIPlus_StringFormatDispose($hFormat)
  2059.     _GDIPlus_BrushDispose($hBrush)
  2060.     _GDIPlus_GraphicsDispose($hCtxt)
  2061.     $tLayout = 0
  2062.     Return $hBitmap_WM
  2063. EndFunc   ;==>_GDIPlus_WatermarkImage
  2064.  
  2065. Func _GDIPlus_CreateRotatedLetters($hBitmap, $sText, $iPos = 9, $iFontSize = 16, $iRadius = 100, $sFont = "Impact", $iFontColor = 0xFFFFFF, $fAlpha = 0.04, $fStart_angle = 0, $iAdjX = 0, $iAdjY = 0, $sFileFontName = 0)
  2066.     If $fAlpha < 0 Then $fAlpha = 0
  2067.     If $fAlpha > 1 Then $fAlpha = 1
  2068.     If $sText = "" Then Return 0
  2069.     Local $iPosX, $iPosY
  2070.     Local $iW = _GDIPlus_ImageGetWidth($hBitmap), $iH = _GDIPlus_ImageGetHeight($hBitmap)
  2071.     If $hBitmap_WM Then _GDIPlus_BitmapDispose($hBitmap_WM)
  2072.     $hBitmap_WM = _GDIPlus_BitmapClone($hBitmap, $iW, $iH)
  2073.     Switch $iPos
  2074.         Case 1
  2075.             $iPosX = $iRadius + $iFontSize
  2076.             $iPosY = $iRadius + $iFontSize
  2077.         Case 2
  2078.             $iPosX = $iW / 2
  2079.             $iPosY = $iRadius + $iFontSize
  2080.         Case 3
  2081.             $iPosX = $iW - ($iRadius + $iFontSize)
  2082.             $iPosY = $iRadius + $iFontSize
  2083.         Case 4
  2084.             $iPosX = $iRadius + $iFontSize
  2085.             $iPosY = $iH / 2
  2086.         Case 5
  2087.             $iPosX = $iW / 2
  2088.             $iPosY = $iH / 2
  2089.         Case 6
  2090.             $iPosX = $iW - ($iRadius + $iFontSize)
  2091.             $iPosY = $iH / 2
  2092.         Case 7
  2093.             $iPosX = $iRadius + $iFontSize
  2094.             $iPosY = $iH - ($iRadius + $iFontSize)
  2095.         Case 8
  2096.             $iPosX = $iW / 2
  2097.             $iPosY = $iH - ($iRadius + $iFontSize)
  2098.         Case 9
  2099.             $iPosX = $iW - ($iRadius + $iFontSize)
  2100.             $iPosY = $iH - ($iRadius + $iFontSize)
  2101.     EndSwitch
  2102.     Local Const $iW2 = $iPosX
  2103.     Local Const $iH2 = $iPosY
  2104.     Local Const $sLen = StringLen($sText)
  2105.     Local Const $delta_a = Floor(360 / $sLen)
  2106.     Local Const $iLetter_w = 256, $iLetter_h = 256
  2107.     Local Const $iLetter_w2 = $iLetter_w / 2
  2108.     Local Const $iLetter_h2 = $iLetter_h / 2
  2109.     Local Const $fCenter_x = $iW2 - $iLetter_w2
  2110.     Local Const $fCenter_y = $iH2 - $iLetter_h2
  2111.     Local Const $fDeg = ACos(-1) / 180
  2112.  
  2113.     Local $aTable[$sLen][14]
  2114.     Local $i, $a, $lW, $lH, $x, $y, $aRes, $aFamily, $aResult, $hPath_WM, $iPenSize, $bSkip = False
  2115.     Local $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap_WM)
  2116.     For $i = 0 To $sLen - 1 ;generate table
  2117.         $aTable[$i][0] = StringMid($sText, $i + 1, 1) ;get next letter
  2118.         $aRes = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iLetter_w, "int", $iLetter_h, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0) ;create empty 32 bit bitmap
  2119.         $aTable[$i][1] = $aRes[6] ;create bitmap
  2120.         $aTable[$i][2] = _GDIPlus_ImageGetGraphicsContext($aTable[$i][1]) ;create context of bitmap to draw to bitmap
  2121.         $aTable[$i][3] = _GDIPlus_BrushCreateSolid(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  2122.         $aTable[$i][4] = _GDIPlus_StringFormatCreate(0x1404) ;$hFormat
  2123.         If $bFontMan Then
  2124.             $aFamily = DllCall($__g_hGDIPDll, 'int', 'GdipCreateFontFamilyFromName', 'wstr', $sFileFontName, 'ptr', $hCollection_WM, 'int*', 0)
  2125.             $aTable[$i][5] = $aFamily[3]
  2126.         Else
  2127.             $aTable[$i][5] = _GDIPlus_FontFamilyCreate($sFont) ;$hFamily
  2128.         EndIf
  2129.         $aTable[$i][6] = _GDIPlus_FontCreate($aTable[$i][5], $iFontSize) ;$hFont
  2130.         $aTable[$i][7] = _GDIPlus_RectFCreate(0, 0, 0, 0) ;$tLayout
  2131.         $aTable[$i][8] = _GDIPlus_GraphicsMeasureString($aTable[$i][2], $aTable[$i][0], $aTable[$i][6], $aTable[$i][7], $aTable[$i][4])
  2132.         If @error Then $bSkip = True
  2133.         $aTable[$i][9] = _GDIPlus_MatrixCreate() ;create a matrix for each letter
  2134.         $aTable[$i][10] = $i * $delta_a + $fStart_angle ;calculate angle of letter
  2135.         $aTable[$i][11] = $iRadius ;radius
  2136.         $aTable[$i][12] = _GDIPlus_PenCreate(BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor, 1) ;$hPen
  2137.         $aTable[$i][13] = _GDIPlus_PenCreate(0xFF000000, Max(1, Int($iFontSize / 11))) ;$hPen
  2138.  
  2139.         _GDIPlus_GraphicsSetSmoothingMode($aTable[$i][2], 2)
  2140.         DllCall($__g_hGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $aTable[$i][2], "int", 4)
  2141.  
  2142.         _GDIPlus_GraphicsClear($aTable[$i][2], 0x00000000)
  2143.         ;calculated possition of letter to place it in the middle of the graphic
  2144.         If $bSkip Then
  2145.             $bSkip = False
  2146.             ContinueLoop
  2147.         EndIf
  2148.         $a = $aTable[$i][8]
  2149.         $lW = DllStructGetData($a[0], "width")
  2150.         $lH = DllStructGetData($a[0], "height")
  2151.         DllStructSetData($a[0], "x", $iLetter_w2 - $lW / 2)
  2152.         DllStructSetData($a[0], "y", $iLetter_h2 - $lH / 2)
  2153.  
  2154.         ;rotate letter
  2155.         _GDIPlus_MatrixTranslate($aTable[$i][9], $iLetter_w2, $iLetter_h2)
  2156.         _GDIPlus_MatrixRotate($aTable[$i][9], -27 + $aTable[$i][10], False)
  2157.         _GDIPlus_MatrixTranslate($aTable[$i][9], -$iLetter_w2, -$iLetter_h2)
  2158.         _GDIPlus_GraphicsSetTransform($aTable[$i][2], $aTable[$i][9])
  2159.  
  2160.         ;print letter to bitmap
  2161.         Switch $sFX_WM
  2162.             Case "Default"
  2163.                 _GDIPlus_GraphicsDrawStringEx($aTable[$i][2], $aTable[$i][0], $aTable[$i][6], $a[0], $aTable[$i][4], $aTable[$i][3])
  2164.             Case "Outlined"
  2165.                 $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  2166.                 $hPath_WM = $aResult[2]
  2167.                 Switch $iFontSize
  2168.                     Case 4 To 64
  2169.                         $iPenSize = 1
  2170.                     Case 65 To 99
  2171.                         $iPenSize = 2
  2172.                     Case 100 To 127
  2173.                         $iPenSize = 4
  2174.                     Case 128 To 160
  2175.                         $iPenSize = 6
  2176.                     Case Else
  2177.                         $iPenSize = 8
  2178.                 EndSwitch
  2179.                 _GDIPlus_PenSetWidth($aTable[$i][12], $iPenSize)
  2180.                 DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $aTable[$i][0], "int", -1, "handle", $aTable[$i][5], "int", 0, "float", $iFontSize * 1.3333333, "struct*", DllStructGetPtr($a[0]), "handle", $aTable[$i][4])
  2181.                 DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $aTable[$i][2], "handle", $aTable[$i][12], "handle", $hPath_WM)
  2182.                 DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  2183.             Case "OutlinedFilled"
  2184.                 $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
  2185.                 $hPath_WM = $aResult[2]
  2186.                 DllCall($__g_hGDIPDll, "uint", "GdipAddPathString", "handle", $hPath_WM, "wstr", $aTable[$i][0], "int", -1, "handle", $aTable[$i][5], "int", 0, "float", $iFontSize * 1.3333333, "struct*", DllStructGetPtr($a[0]), "handle", $aTable[$i][4])
  2187.                 DllCall($__g_hGDIPDll, "uint", "GdipDrawPath", "handle", $aTable[$i][2], "handle", $aTable[$i][13], "handle", $hPath_WM)
  2188.                 DllCall($__g_hGDIPDll, "uint", "GdipFillPath", "handle", $aTable[$i][2], "handle", $aTable[$i][3], "handle", $hPath_WM)
  2189.                 DllCall($__g_hGDIPDll, "uint", "GdipDeletePath", "handle", $hPath_WM)
  2190.             Case "Embossed"
  2191.                 Local $iDelta
  2192.                 If $iFontSize < 100 Then
  2193.                     $iDelta = 2
  2194.                 Else
  2195.                     $iDelta = 4
  2196.                 EndIf
  2197.                 _GDIPlus_BrushSetSolidColor($aTable[$i][3], BitShift(Int($fAlpha * 0xFF), -24) + 0xFFFFFF)
  2198.                 _GDIPlus_GraphicsDrawStringEx($aTable[$i][2], $aTable[$i][0], $aTable[$i][6], $a[0], $aTable[$i][4], $aTable[$i][3])
  2199.                 _GDIPlus_BrushSetSolidColor($aTable[$i][3], BitShift(Int($fAlpha * 0xFF), -24) + 0x303030)
  2200.                 DllStructSetData($a[0], "x", DllStructGetData($a[0], "x") + $iDelta)
  2201.                 DllStructSetData($a[0], "y", DllStructGetData($a[0], "y") + $iDelta)
  2202.                 _GDIPlus_GraphicsDrawStringEx($aTable[$i][2], $aTable[$i][0], $aTable[$i][6], $a[0], $aTable[$i][4], $aTable[$i][3])
  2203.                 _GDIPlus_BrushSetSolidColor($aTable[$i][3], BitShift(Int($fAlpha * 0xFF), -24) + $iFontColor)
  2204.                 DllStructSetData($a[0], "x", DllStructGetData($a[0], "x") - $iDelta / 2)
  2205.                 DllStructSetData($a[0], "y", DllStructGetData($a[0], "y") - $iDelta / 2)
  2206.                 _GDIPlus_GraphicsDrawStringEx($aTable[$i][2], $aTable[$i][0], $aTable[$i][6], $a[0], $aTable[$i][4], $aTable[$i][3])
  2207.         EndSwitch
  2208.  
  2209.         ;copy letter to main screen in a circle
  2210.         $x = $fCenter_x + Cos(-90 + $aTable[$i][10] * $fDeg) * $aTable[$i][11]
  2211.         $y = $fCenter_y + Sin(-90 + $aTable[$i][10] * $fDeg) * $aTable[$i][11]
  2212.         _GDIPlus_GraphicsDrawImage($hContext, $aTable[$i][1], $x + $iAdjX, $y + $iAdjY)
  2213.     Next
  2214.  
  2215.     For $i = 0 To $sLen - 1
  2216.         _GDIPlus_BitmapDispose($aTable[$i][1])
  2217.         _GDIPlus_GraphicsDispose($aTable[$i][2])
  2218.         _GDIPlus_BrushDispose($aTable[$i][3])
  2219.         _GDIPlus_StringFormatDispose($aTable[$i][4])
  2220.         _GDIPlus_FontFamilyDispose($aTable[$i][5])
  2221.         _GDIPlus_FontDispose($aTable[$i][6])
  2222.         _GDIPlus_MatrixDispose($aTable[$i][9])
  2223.         _GDIPlus_PenDispose($aTable[$i][12])
  2224.         _GDIPlus_PenDispose($aTable[$i][13])
  2225.     Next
  2226.     _GDIPlus_GraphicsDispose($hContext)
  2227.     Return $hBitmap_WM
  2228. EndFunc   ;==>_GDIPlus_CreateRotatedLetters
  2229.  
  2230. Func WM_SIZE_WM($hWnd, $Msg, $wParam, $lParam)
  2231.     #forceref $Msg, $wParam, $lParam
  2232. ;~  ConsoleWrite("!")
  2233.     $bUpdate_WM = True
  2234.     GUICtrlSendToDummy($idDummy_WinResized)
  2235.     Return "GUI_RUNDEFMSG"
  2236. EndFunc   ;==>WM_SIZE_WM
  2237.  
  2238. Func WM_GETMINMAXINFO_WM($hWnd, $Msg, $wParam, $lParam)
  2239.     Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
  2240.     DllStructSetData($minmaxinfo, 7, $iGUI_MinW) ; min X
  2241.     DllStructSetData($minmaxinfo, 8, $iGUI_MinH) ; min Y
  2242.     Return "GUI_RUNDEFMSG"
  2243. EndFunc   ;==>WM_GETMINMAXINFO_WM
  2244.  
  2245. Func WM_REDRAW_WM($hWnd, $Msg, $wParam, $lParam)
  2246.     Switch $Msg
  2247.         Case $WM_NCPAINT
  2248.             CopyImageGfx($hBmp_Preview_WM)
  2249.             Return "GUI_RUNDEFMSG"
  2250.         Case $WM_PAINT
  2251.             CopyImageGfx($hBmp_Preview_WM)
  2252.             Return "GUI_RUNDEFMSG"
  2253. ;~      Case $WM_ERASEBKGND
  2254. ;~          CopyImageGfx($hBmp_Preview_WM)
  2255. ;~          _WinAPI_RedrawWindow($hWnd, "", "", BitOR($RDW_UPDATENOW, $RDW_FRAME, $RDW_INTERNALPAINT))
  2256. ;~          Return True
  2257.     EndSwitch
  2258.     Return "GUI_RUNDEFMSG"
  2259. EndFunc   ;==>WM_REDRAW_WM
  2260.  
  2261. Func WM_COMMAND_WM($hWnd, $Msg, $wParam, $lParam)
  2262.     #forceref $hWnd, $Msg, $lParam
  2263.     Local $ii
  2264.     Switch BitAND($wParam, 0x0000FFFF)
  2265.         Case $idBatch_WM
  2266.             GUICtrlSendToDummy($idDummy_Batch)
  2267.         Case $idResize_WM
  2268.             GUICtrlSendToDummy($idDummy_Resize)
  2269.         Case $idClipboard_WM
  2270.             GUICtrlSendToDummy($idDummy_Clipboard)
  2271.         Case $idInput_WM_W
  2272.             $ii = GUICtrlRead($idInput_WM_W)
  2273.             Switch BitAND(GUICtrlRead($idChkBox_WM_AR), $GUI_CHECKED)
  2274.                 Case 0
  2275.                     GUICtrlSetData($idInput_WM_W, Max(1, Min($ii, 16384)))
  2276.                 Case 1
  2277.                     GUICtrlSetData($idInput_WM_W, Max(1, Min($ii, 16384)))
  2278.                     $ii = Round(GUICtrlRead($idInput_WM_W) * $bH / $bW, 0)
  2279.                     GUICtrlSetData($idInput_WM_H, $ii)
  2280.             EndSwitch
  2281.             GUICtrlSetData($idInput_WM_WP, Round(GUICtrlRead($idInput_WM_W) / $bW * 100))
  2282.             GUICtrlSetData($idInput_WM_HP, Round(GUICtrlRead($idInput_WM_H) / $bH * 100))
  2283.             GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  2284.         Case $idInput_WM_H
  2285.             $ii = GUICtrlRead($idInput_WM_H)
  2286.             Switch BitAND(GUICtrlRead($idChkBox_WM_AR), $GUI_CHECKED)
  2287.                 Case 0
  2288.                     GUICtrlSetData($idInput_WM_H, Max(1, Min($ii, 16384)))
  2289.                 Case 1
  2290.                     GUICtrlSetData($idInput_WM_H, Max(1, Min($ii, 16384)))
  2291.                     $ii = Round(GUICtrlRead($idInput_WM_H) * $bW / $bH, 0)
  2292.                     GUICtrlSetData($idInput_WM_W, $ii)
  2293.             EndSwitch
  2294.             GUICtrlSetData($idInput_WM_WP, Round(GUICtrlRead($idInput_WM_W) / $bW * 100))
  2295.             GUICtrlSetData($idInput_WM_HP, Round(GUICtrlRead($idInput_WM_H) / $bH * 100))
  2296.             GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  2297.         Case $idInput_WM_WP
  2298.             $ii = Round(GUICtrlRead($idInput_WM_WP) / 100 * $bW, 0)
  2299.             Switch BitAND(GUICtrlRead($idChkBox_WM_AR), $GUI_CHECKED)
  2300.                 Case 0
  2301.                     GUICtrlSetData($idInput_WM_W, Max(1, Min($ii, 16384)))
  2302.                 Case 1
  2303.                     GUICtrlSetData($idInput_WM_W, Max(1, Min($ii, 16384)))
  2304.                     $ii = Round(GUICtrlRead($idInput_WM_W) * $bH / $bW, 0)
  2305.                     GUICtrlSetData($idInput_WM_H, $ii)
  2306.             EndSwitch
  2307.             GUICtrlSetData($idInput_WM_HP, Round(GUICtrlRead($idInput_WM_H) / $bH * 100))
  2308.             GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  2309.         Case $idInput_WM_HP
  2310.             $ii = Round(GUICtrlRead($idInput_WM_HP) / 100 * $bH, 0)
  2311.             Switch BitAND(GUICtrlRead($idChkBox_WM_AR), $GUI_CHECKED)
  2312.                 Case 0
  2313.                     GUICtrlSetData($idInput_WM_H, Max(1, Min($ii, 16384)))
  2314.                 Case 1
  2315.                     GUICtrlSetData($idInput_WM_H, Max(1, Min($ii, 16384)))
  2316.                     $ii = Round(GUICtrlRead($idInput_WM_H) * $bW / $bH, 0)
  2317.                     GUICtrlSetData($idInput_WM_W, $ii)
  2318.             EndSwitch
  2319.             GUICtrlSetData($idInput_WM_WP, Round(GUICtrlRead($idInput_WM_W) / $bW * 100))
  2320.             GUICtrlSetData($idLabel_WM_SizeN, GUICtrlRead($idInput_WM_W) & " x " & GUICtrlRead($idInput_WM_H) & " Pixel")
  2321.         Case Else
  2322.             $bUpdate_WM = True
  2323.     EndSwitch
  2324.     Return "GUI_RUNDEFMSG"
  2325. EndFunc   ;==>WM_COMMAND_WM
  2326.  
  2327. Func WM_DROPFILES_WM($hWnd, $Msg, $wParam, $lParam)
  2328.     #forceref $hWnd, $Msg, $lParam
  2329.     Local $aRet = DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", -1, "ptr", 0, "int", 0)
  2330.     If @error Then Return SetError(1, 0, "GUI_RUNDEFMSG")
  2331.  
  2332.     Local $sDroppedFile, $tBuffer = DllStructCreate("char[256]")
  2333.     If $aRet[0] = 1 Then
  2334.         DllCall("shell32.dll", "int", "DragQueryFile", "int", $wParam, "int", 0, "ptr", DllStructGetPtr($tBuffer), "int", DllStructGetSize($tBuffer))
  2335.         $sDroppedFile = DllStructGetData($tBuffer, 1)
  2336.  
  2337.         If StringInStr(FileGetAttrib($sDroppedFile), "D") Then
  2338.             DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
  2339.             Return MsgBox(16 + 262144, "Error", "This is not a file ;-)", 20)
  2340.         EndIf
  2341.     EndIf
  2342.     DllCall("shell32.dll", "none", "DragFinish", "int", $wParam)
  2343.     $tBuffer = 0
  2344.     $bDnD = True
  2345.     $sFileImage_WM = $sDroppedFile
  2346.     If Not StringRegExpReplace($sFileImage_WM, "(?i)^.+\.(bmp|jpg|png|gif)$", 0) Then Return SetError(2, 0, "GUI_RUNDEFMSG")
  2347.     GUICtrlSendMsg($idButtonLoadImage_WM, $BM_CLICK, 0, 0)
  2348. ;~  If $sDroppedFiles <> "" Then
  2349.     Return "GUI_RUNDEFMSG"
  2350. EndFunc   ;==>WM_DROPFILES_WM
  2351.  
  2352. Func WM_VSCROLL_WM($hWnd, $Msg, $wParam, $lParam)
  2353.     #forceref $hWnd, $Msg, $wParam
  2354.     Switch $lParam
  2355.         Case $hSliderDegree_WM
  2356.             Local $iDegree = GUICtrlRead($idSliderDegree_WM)
  2357.             Local Static $iPrevDegree = -1
  2358.             If $iPrevDegree <> $iDegree Then
  2359.                 GUICtrlSetData($idInputDegree_WM, $iDegree)
  2360. ;~              UpdatePreview_WM()
  2361.                 $bUpdate_WM = True
  2362.                 $iPrevDegree = $iRotation_WM
  2363.             EndIf
  2364.             $bStoppMove = True
  2365.             Return 0
  2366.         Case $hSliderAdjY_WM
  2367.             $iAdjY_WM = GUICtrlRead($idSliderAdjY_WM)
  2368.             $bUpdate_WM = True
  2369.             ToolTip($iAdjY_WM, MouseGetPos(0) + 20, MouseGetPos(1))
  2370.             Return 0
  2371. ;~      Case $hUpdown_WM
  2372. ;~          ConsoleWrite("VV" & @CRLF)
  2373. ;~          UpdatePreview_WM()
  2374.     EndSwitch
  2375.     Switch BitAND($wParam, 0xFF)
  2376.         Case 5 ;$SB_THUMBTRACK = 5
  2377.         Case Else
  2378.             $bStoppMove = False
  2379.     EndSwitch
  2380.     Return "GUI_RUNDEFMSG"
  2381. EndFunc   ;==>WM_VSCROLL_WM
  2382.  
  2383. Func WM_HSCROLL_WM($hWnd, $Msg, $wParam, $lParam)
  2384.     #forceref $hWnd, $Msg
  2385.     Switch $lParam
  2386.         Case $hSliderOpaque_WM
  2387.             Local Static $iPrevOpaque = -1
  2388.             Local $iOpaque = GUICtrlRead($idSliderOpaque_WM)
  2389.             If $iPrevOpaque <> $iOpaque Then
  2390.                 GUICtrlSetData($idInputOpaque_WM, $iOpaque)
  2391.                 ToolTip(Round(100 * GUICtrlRead($idSliderOpaque_WM) / 0xFF, 0) & " %")
  2392.                 $bUpdate_WM = True
  2393.                 $iPrevOpaque = $iOpaque
  2394.             EndIf
  2395.             $bStoppMove = True
  2396.             Return 0
  2397.         Case $hSliderRadius_WM
  2398.             Local Static $iPrevRad = -1
  2399.             Local $iRad = GUICtrlRead($idSliderRadius_WM)
  2400.             If $iPrevRad <> $iRad Then
  2401.                 GUICtrlSetData($idInputRadius_WM, $iRad)
  2402.                 $bUpdate_WM = True
  2403.                 $iPrevRad = $iRad
  2404.             EndIf
  2405.             $bStoppMove = True
  2406.             Return 0
  2407.         Case $hSliderJPGQual_WM
  2408.             Local Static $iPrevJPG = -1
  2409.             Local $iJPG = GUICtrlRead($idSliderJPGQual_WM)
  2410.             If $iPrevJPG <> $iJPG Then
  2411.                 GUICtrlSetData($idInputJPGQual_WM, $iJPG)
  2412.                 $iPrevJPG = $iJPG
  2413.             EndIf
  2414.             $bStoppMove = True
  2415.             Return 0
  2416.         Case $hSliderAdjX_WM
  2417.             $iAdjX_WM = GUICtrlRead($idSliderAdjX_WM)
  2418.             $bUpdate_WM = True
  2419.             ToolTip($iAdjX_WM, MouseGetPos(0) + 20, MouseGetPos(1))
  2420.             Return 0
  2421.         Case Else
  2422.     EndSwitch
  2423.     Switch BitAND($wParam, 0xFF)
  2424.         Case 5 ;$SB_THUMBTRACK = 5
  2425.         Case Else
  2426.             ToolTip("")
  2427.             $bStoppMove = False
  2428.             Return 0
  2429.     EndSwitch
  2430.     Return "GUI_RUNDEFMSG"
  2431. EndFunc   ;==>WM_HSCROLL_WM
  2432.  
  2433. Func WM_SYSCOMMAND_WM($hWnd, $Msg, $wParam, $lParam)
  2434.     #forceref $hWnd, $Msg, $wParam, $lParam
  2435.     Switch BitAND($wParam, 0x0000FFFF)
  2436.         Case $id_ChkUpd
  2437.             Check4Update($hGUI_WM)
  2438.         Case $id_VisitWeb
  2439.             ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=145873")
  2440.         Case $id_About
  2441.             MsgBox(262208, "About", "Main code by UEZ" & @CRLF & @CRLF & _
  2442.                                     "Additional code:" & @CRLF & _
  2443.                                     "AutoIt Team (Scripting Language)" & @CRLF & _
  2444.                                     "Authenticity (GDIP.au3), " & @CRLF & _
  2445.                                     "funkey (_GetFontInfoFromFilePtr()), " & @CRLF & _
  2446.                                     "Melba23 (NoFocusLines.au3)" & @CRLF & _
  2447.                                     "Yashied (WinAPIEx.au3)" & @CRLF & _
  2448.                                     "RESTOOLS (WaterCtrl.dll)", 30)
  2449.     EndSwitch
  2450.     Return "GUI_RUNDEFMSG"
  2451. EndFunc   ;==>WM_SYSCOMMAND_WM
  2452.  
  2453. Func Check4Update($hParentGUI)
  2454.     GUISetCursor(15)
  2455.     Local $iRead = InetRead("http://www.autoitscript.com/forum/index.php?showtopic=145873")
  2456.     If @error Then Return MsgBox(16, "Error", "Unable to check online! Behind a firewall or proxy?", 30, $hParentGUI)
  2457.     Local $aRegEx = StringRegExp(BinaryToString($iRead), "<title>" & $sTitle & "(v\d\.\d+.*\d+-\d+-\d+)\s.*</title>", 1)
  2458.     GUISetCursor(-1)
  2459.     If Not IsArray($aRegEx) Or @error Then Return MsgBox(16, "Internal Error", "Unable to parse line!", 30, $hParentGUI)
  2460.     Local $sVer = $aRegEx[0]
  2461.     If $ver = $sVer Then
  2462.         MsgBox(64, "Update Information", "Current version: " & $ver & @CRLF & "Web version: " & $sVer & @LF & @LF & "Your version is up-to-date! :-)", 15, $hParentGUI)
  2463.     Else
  2464.         Local $iChk = MsgBox(32 + 4 + 256, "Update Information", "Current version: " & $ver & @CRLF & "Web version: " & $sVer & @LF & @LF & "Found newer version. Visit web site?", 30, $hParentGUI)
  2465.         If $iChk = 6 Then ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=145873")
  2466.     EndIf
  2467. EndFunc   ;==>Check4Update
  2468.  
  2469. #region GDI+ functions
  2470. Func _GDIPlus_Convert2HBitmap($hBitmap, $iColor); removes alpha backround using system color and converts to gdi bitmap
  2471.     Local $iBGColor = _WinAPI_GetSysColor($iColor)
  2472.     $iBGColor = 0x10000 * BitAND($iBGColor, 0xFF) + BitAND($iBGColor, 0x00FF00) + BitShift($iBGColor, 16)
  2473.     Local $iWidth = _GDIPlus_ImageGetWidth($hBitmap), $iHeight = _GDIPlus_ImageGetHeight($hBitmap)
  2474.     Local $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  2475.     Local $hBitmap_New = $aResult[6]
  2476.     Local $hCtx_new = _GDIPlus_ImageGetGraphicsContext($hBitmap_New)
  2477.     Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000 + $iBGColor)
  2478.     _GDIPlus_GraphicsFillRect($hCtx_new, 0, 0, $iWidth, $iHeight, $hBrush)
  2479.     _GDIPlus_GraphicsDrawImageRect($hCtx_new, $hBitmap, 0, 0, $iWidth, $iHeight)
  2480.     Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_New)
  2481.     _GDIPlus_BrushDispose($hBrush)
  2482.     _GDIPlus_BitmapDispose($hBitmap_New)
  2483.     _GDIPlus_GraphicsDispose($hCtx_new)
  2484.     Return $hHBitmap
  2485. EndFunc   ;==>_GDIPlus_Convert2HBitmap
  2486.  
  2487. Func _GDIPlus_FontCollectionCreate()
  2488.     Local $aResult = DllCall($__g_hGDIPDll, "uint", "GdipNewInstalledFontCollection", "int*", 0)
  2489.     If @error Then Return SetError(@error, @extended, 0)
  2490.     Return $aResult[1]
  2491. EndFunc   ;==>_GDIPlus_FontCollectionCreate
  2492.  
  2493. Func _GDIPlus_FontCollectionGetFamilyList($hFontCollection)
  2494.     Local $ii, $iCount, $tFontFamilies, $pFontFamilies, $aFontFamilies[1], $aResult
  2495.     $iCount = _GDIPlus_FontCollectionGetFamilyCount($hFontCollection)
  2496.     If @error Then Return SetError(@error, @extended, -1)
  2497.     If $iCount = 0 Then
  2498.         Return -1
  2499.     EndIf
  2500.     $tFontFamilies = DllStructCreate("hwnd[" & $iCount & "]")
  2501.     $pFontFamilies = DllStructGetPtr($tFontFamilies)
  2502.     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipGetFontCollectionFamilyList", "handle", $hFontCollection, "int", $iCount, "ptr", $pFontFamilies, "int*", 0)
  2503.     If @error Then Return SetError(@error, @extended, -1)
  2504.     If $aResult[0] Then
  2505.         Return -1
  2506.     EndIf
  2507.     ReDim $aFontFamilies[$iCount + 1]
  2508.     $aFontFamilies[0] = $iCount
  2509.     For $ii = 1 To $iCount
  2510.         $aFontFamilies[$ii] = DllStructGetData($tFontFamilies, 1, $ii)
  2511.     Next
  2512.     Return $aFontFamilies
  2513. EndFunc   ;==>_GDIPlus_FontCollectionGetFamilyList
  2514.  
  2515. Func _GDIPlus_FontCollectionGetFamilyCount($hFontCollection)
  2516.     Local $aResult = DllCall($__g_hGDIPDll, "uint", "GdipGetFontCollectionFamilyCount", "handle", $hFontCollection, "int*", 0)
  2517.     If @error Then Return SetError(@error, @extended, 0)
  2518.     Return $aResult[2]
  2519. EndFunc   ;==>_GDIPlus_FontCollectionGetFamilyCount
  2520.  
  2521. Func _GDIPlus_FontFamilyGetFamilyName($hFontFamily, $iLANGID = 0)
  2522.     Local $tName, $pName, $sName, $aResult
  2523.     $tName = DllStructCreate("wchar[" & $GDIP_LF_FACESIZE & "]")
  2524.     $pName = DllStructGetPtr($tName)
  2525.     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipGetFamilyName", "handle", $hFontFamily, "ptr", $pName, "ushort", $iLANGID)
  2526.     If @error Then Return SetError(@error, @extended, 0)
  2527.     If $aResult[0] Then Return 0
  2528.     $sName = DllStructGetData($tName, 1)
  2529.     Return $sName
  2530. EndFunc   ;==>_GDIPlus_FontFamilyGetFamilyName
  2531.  
  2532. Func _GDIPlus_BitmapClone($hBitmap, $bW, $bH)
  2533.     Local $hBitmap_New, $hCtx_Bitmap_new, $aResult
  2534.     $aResult = DllCall($__g_hGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $bW, "int", $bH, "int", 0, "int", $GDIP_PXF32ARGB, "ptr", 0, "int*", 0)
  2535.     If @error Then Return SetError(0, 0, 0)
  2536.     $hBitmap_New = $aResult[6]
  2537.     $hCtx_Bitmap_new = _GDIPlus_ImageGetGraphicsContext($hBitmap_New)
  2538.     _GDIPlus_GraphicsDrawImageRect($hCtx_Bitmap_new, $hBitmap, 0, 0, $bW, $bH)
  2539.     _GDIPlus_GraphicsDispose($hCtx_Bitmap_new)
  2540.     Return $hBitmap_New
  2541. EndFunc   ;==>_GDIPlus_BitmapClone
  2542.  
  2543. Func _GetFontInfoFromFilePtr($pFile, $iFlag = 1); 0=copyright;1=name;2=type ... 10=description;11=website
  2544.     ;funkey 2012, May 15
  2545.     Local $ttOffsetTable = DllStructCreate($tagTT_OFFSET_TABLE, $pFile)
  2546.     DllStructSetData($ttOffsetTable, "uNumOfTables", _SwapWord(DllStructGetData($ttOffsetTable, "uNumOfTables")))
  2547.     DllStructSetData($ttOffsetTable, "uMajorVersion", _SwapWord(DllStructGetData($ttOffsetTable, "uMajorVersion")))
  2548.     DllStructSetData($ttOffsetTable, "uMinorVersion", _SwapWord(DllStructGetData($ttOffsetTable, "uMinorVersion")))
  2549.     ;check is this is a true type font and the version is 1.0
  2550.     If StringFormat("%i.%i", DllStructGetData($ttOffsetTable, "uMajorVersion"), DllStructGetData($ttOffsetTable, "uMinorVersion")) <> "1.0" Then
  2551.         Return SetError(1)
  2552.     EndIf
  2553.     Local $tblDir = DllStructCreate($tagTT_TABLE_DIRECTORY)
  2554.     Local $bFound = False
  2555.     Local $sTemp
  2556.     For $i = 0 To DllStructGetData($ttOffsetTable, "uNumOfTables") - 1
  2557.         $tblDir = DllStructCreate($tagTT_TABLE_DIRECTORY, $pFile + DllStructGetSize($ttOffsetTable) + $i * DllStructGetSize($tblDir))
  2558.         If StringLeft(DllStructGetData($tblDir, "szTag"), 4) = "name" Then
  2559.             $bFound = True
  2560.             DllStructSetData($tblDir, "uLength", _SwapLong(DllStructGetData($tblDir, "uLength")))
  2561.             DllStructSetData($tblDir, "uOffset", _SwapLong(DllStructGetData($tblDir, "uOffset")))
  2562.             ExitLoop
  2563.         EndIf
  2564.     Next
  2565.     If Not $bFound Then Return SetError(2)
  2566.     Local $ttNTHeader = DllStructCreate($tagTT_NAME_TABLE_HEADER, $pFile + DllStructGetData($tblDir, "uOffset"))
  2567.     DllStructSetData($ttNTHeader, "uNRCount", _SwapWord(DllStructGetData($ttNTHeader, "uNRCount")))
  2568.     DllStructSetData($ttNTHeader, "uStorageOffset", _SwapWord(DllStructGetData($ttNTHeader, "uStorageOffset")))
  2569.     Local $ttRecord = DllStructCreate($tagTT_NAME_RECORD)
  2570.     Local $tResult, $sResult
  2571.     For $i = 0 To DllStructGetData($ttNTHeader, "uNRCount") - 1
  2572.         $ttRecord = DllStructCreate($tagTT_NAME_RECORD, $pFile + DllStructGetData($tblDir, "uOffset") + DllStructGetSize($ttNTHeader) + $i * DllStructGetSize($ttRecord))
  2573.         DllStructSetData($ttRecord, "uNameID", _SwapWord(DllStructGetData($ttRecord, "uNameID")))
  2574.         If DllStructGetData($ttRecord, "uNameID") = $iFlag Then ;1 says that this is font name. 0 for example determines copyright info
  2575.             DllStructSetData($ttRecord, "uStringLength", _SwapWord(DllStructGetData($ttRecord, "uStringLength")))
  2576.             DllStructSetData($ttRecord, "uStringOffset", _SwapWord(DllStructGetData($ttRecord, "uStringOffset")))
  2577.             $tResult = DllStructCreate("char [" & DllStructGetData($ttRecord, "uStringLength") & "]", $pFile + _
  2578.                     DllStructGetData($tblDir, "uOffset") + DllStructGetData($ttRecord, "uStringOffset") + _
  2579.                     DllStructGetData($ttNTHeader, "uStorageOffset"))
  2580.             $sResult = DllStructGetData($tResult, 1)
  2581.             If StringLen($sResult) > 0 Then ExitLoop
  2582.         EndIf
  2583.     Next
  2584.     Return $sResult
  2585. EndFunc   ;==>_GetFontInfoFromFilePtr
  2586. #endregion GDI+ functions
  2587.  
  2588. #region internal functions
  2589. Func _SwapLong($x)
  2590.     Return _WinAPI_MakeLong(_SwapWord(_WinAPI_HiWord($x)), _SwapWord(_WinAPI_LoWord($x)))
  2591. EndFunc   ;==>_SwapLong
  2592.  
  2593. Func _SwapWord($x)
  2594.     Return _WinAPI_MakeWord(_WinAPI_LoByte($x), _WinAPI_HiByte($x))
  2595. EndFunc   ;==>_SwapWord
  2596.  
  2597. ;~ Func _WinAPI_MakeWord($iLo, $iHi)
  2598. ;~  Local $tWord = DllStructCreate('ushort')
  2599. ;~  Local $tByte = DllStructCreate('byte;byte', DllStructGetPtr($tWord))
  2600. ;~  DllStructSetData($tByte, 1, $iHi)
  2601. ;~  DllStructSetData($tByte, 2, $iLo)
  2602. ;~  Return DllStructGetData($tWord, 1)
  2603. ;~ EndFunc   ;==>_WinAPI_MakeWord
  2604.  
  2605. ;~ Func _WinAPI_LoByte($iValue)
  2606. ;~  Return BitAND($iValue, 0xFF)
  2607. ;~ EndFunc   ;==>_WinAPI_LoByte
  2608.  
  2609. ;~ Func _WinAPI_HiByte($iValue)
  2610. ;~  Return BitAND(BitShift($iValue, 8), 0xFF)
  2611. ;~ EndFunc   ;==>_WinAPI_HiByte
  2612.  
  2613. Func _WinAPI_Client2Screen($hWnd, ByRef $iX, ByRef $iY)
  2614.     Local $stPoint = DllStructCreate("int;int")
  2615.     DllStructSetData($stPoint, 1, $iX)
  2616.     DllStructSetData($stPoint, 2, $iY)
  2617.     DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))
  2618.     $iX = DllStructGetData($stPoint, 1)
  2619.     $iY = DllStructGetData($stPoint, 2)
  2620.     ; release Struct not really needed as it is a local
  2621.     $stPoint = 0
  2622. EndFunc   ;==>_WinAPI_Client2Screen
  2623.  
  2624. Func Min($a, $b)
  2625.     If $a < $b Then Return $a
  2626.     Return $b
  2627. EndFunc   ;==>Min
  2628.  
  2629. Func Max($a, $b)
  2630.     If $a > $b Then Return $a
  2631.     Return $b
  2632. EndFunc   ;==>Max
  2633.  
  2634. Func _GUICtrlMenu_CreateBitmap($file, $iIndex = 0, $iX = 16, $iY = 16) ;thanks to Yashied
  2635.     If FileExists($file) Then
  2636.         Local $aRet, $hIcon, $hBitmap
  2637.         Local $hDC, $hBackDC, $hBackSv
  2638.  
  2639.         $aRet = DllCall("shell32", "long", "ExtractAssociatedIcon", "int", 0, "str", $file, "word*", $iIndex)
  2640.         If @error Then Return SetError(@error, @extended, 0)
  2641.         $hIcon = $aRet[0]
  2642.  
  2643.         $hDC = _WinAPI_GetDC(0) ;thanks to Yashied
  2644.         $hBackDC = _WinAPI_CreateCompatibleDC($hDC)
  2645.         $hBitmap = _WinAPI_CreateSolidBitmap(0, _WinAPI_GetSysColor($COLOR_MENU), $iX, $iY)
  2646.         $hBackSv = _WinAPI_SelectObject($hBackDC, $hBitmap)
  2647.         _WinAPI_DrawIconEx($hBackDC, 0, 0, $hIcon, $iX, $iY, 0, 0, 3)
  2648.         _WinAPI_DestroyIcon($hIcon)
  2649.  
  2650.         _WinAPI_SelectObject($hBackDC, $hBackSv)
  2651.         _WinAPI_ReleaseDC(0, $hDC)
  2652.         _WinAPI_DeleteDC($hBackDC)
  2653.         Return $hBitmap
  2654.     Else
  2655.         Return SetError(1, 0, 0)
  2656.     EndIf
  2657. EndFunc   ;==>_GUICtrlMenu_CreateBitmap
  2658. #endregion internal functions
  2659.  
  2660. #region functions from WinAPIEx.au3 -> thanks to Yashied
  2661. Func _GetNN($hWnd)
  2662.     Local $List, $Text, $ID = 0
  2663.     $Text = _WinAPI_GetClassName($hWnd)
  2664.     If Not $Text Then
  2665.         Return -1
  2666.     EndIf
  2667.     $List = _WinAPI_EnumChildWindows(_WinAPI_GetAncestor($hWnd, $GA_ROOT), 0)
  2668.     If @error Then
  2669.         Return -1
  2670.     EndIf
  2671.     For $i = 1 To $List[0][0]
  2672.         If $List[$i][1] = $Text Then
  2673.             $ID += 1
  2674.         EndIf
  2675.         If $List[$i][0] = $hWnd Then
  2676.             ExitLoop
  2677.         EndIf
  2678.     Next
  2679.     If Not $ID Then
  2680.         Return -1
  2681.     EndIf
  2682.     Return $ID
  2683. EndFunc   ;==>_GetNN
  2684. #endregion functions from WinAPIEx.au3 -> thanks to Yashied
  2685.  
  2686. ;Code below was generated by: 'File to Base64 String' Code Generator v1.11 Build 2012-10-13
  2687.  
  2688. Func _BatchConvert_Icon($bSaveBinary = False)
  2689.     Local $BatchConvert_Icon
  2690.     $BatchConvert_Icon &= 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAAC8UlEQVQ4y3WSXWhbdRiHn/ORnuak6TkpM2tXCoMWSj/TzQypeBSn6BQZ63C7EJwIQwRlxVpkICq9KjoRWjeLH5edDPG2nWVYK4jDUqqOWo1LSbMPybKPFJP0nP85OTneqCRUf7cv78Pv4X0lajI9PW3qup6wbfuKLMtRTdPaJUlSwo1at0RVzt8pfD46Olqu3VEBJicn9bm5uXe0xsaX+gf6zaWlb/326Jd+951sw025wsHHD3Bj4RJvX2x7AXhoB6Czs/PE/Pz8G4qi4AhB4V5BeaDrTcWI9JIMfsfztrDtKnvisa6enuZTqVTq02q1agPIALquN4ZCIWRZRg+HaWqKUHElnMI6niNQ1Hba23SGOuzdM598PPXkoUOf/dNABhBCCNd1+f7yZTKZDGs/nKTF6GJxtonzF4+giK9oHjrME123+fXC88Ri5tN1AMdxxPKPP/HWxAQffHgWPVSCahwt5BLZ9Szeto3efAE9+SLJliy3czcrdQDXdR0kiZ7ePoath9kovsL1zM8csHq5uzqGGgQ4Th830mnO//EMu1o7yjsUQqpKsVQil8sRKCrr6ShG6yovP3cLSe3m1lqYpe/S9FrHCev6dt0VKpWKkCWJbdsmn88jXJf1UhP9bXu5W8izr08QVT2Cio3v+7iuW64DAAICUuu/sLq8DAQQBMx8oWEaezl9LMeltf08dfwU9wpbOI5Tr+D7vjCjzSQGBiiXipRLJYTrIqsNyA0m575O8qe0h92tbQB4nluv4Hne5tZWwT/70YyysLDAN4uLrKysoDZoGGYM0zSIx+M4QgDg2E69wvj4+LXBRGLstbHXJ+5PJk3LslDUENlslqvpNJubGTRNQ7ju3w28fwFS7V/LsqzFWloeGx5+8OgjBx89PDi0/z7DNND1CKVymXw+z7VMhqn3z7y6sZE+twNQG0mSFMMwrMTQvqPDlnWkZ2Cwo1wsVqfee/d0KvXbmf9s8H+ZnZ2VIpFIEghGRkZWamd/AfCEOJBagaGBAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAyLTExVDE0OjU2OjEyLTA2OjAwrvv5fwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAwNC0wMy0xMFQxNjo0ODowMC0wNjowMIXQYlEAAAAASUVORK5CYII='
  2691.     Local $bString = Binary(_WinAPI_Base64Decode($BatchConvert_Icon))
  2692.     If $bSaveBinary Then
  2693.         Local $hFile = FileOpen(@ScriptDir & "\msdos_batch_file_16x16.png", 18)
  2694.         FileWrite($hFile, $bString)
  2695.         FileClose($hFile)
  2696.     EndIf
  2697.     Return  $bString
  2698. EndFunc   ;==>_BatchConvert_Icon
  2699.  
  2700. Func _Resize_Icon($bSaveBinary = False)
  2701.     Local $Resize_Icon
  2702.     $Resize_Icon &= 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAACKElEQVR4XpVSTW9SQRQ9wCNAQ7TpH8AN6Y6VMe4Ka2miRSqNiStjXBAowkZLNTERqVWrv0HdYNmZ7mxjWUKAgCTGiGmwIpSkfEr5vs4M6SspsPAkN2/y7p2Tc+4chdvtJr/fj0lot9vQarUgorFep9OB2WwGfD4fTcPW1huKRCITe81mk4xGIykxBYlEAv0BsLf3BWwY0zCRoN/v4937DyAA3V4foVBoOgH3NxgM0O12efGzIHi87sfhYQ5zc7Ow2Wzo9Xr8/+icTMB/iIFsNovNl6+gUChQLpdxfFzB73wekiShVCqJXr1e4wsUdwQ8Hg/l/+QpuPGCri0ukc2+Qg8frdGS7RYtr9yhJfttunvvPq16vLR43U43bMv0cXubCoXCcIlcylHxCOmvGTT+NlCpVfHt+w9UazVUKhXU6lXkcr/w8+AAzZMmU1VmC07Ki5W4Bb1ejyfra9jfj+Dz7i6CzwOIxWIIbr7G7MUL2AgG0GOSnz4LwOVbhcFgOLPgdDoplUpRNBoldkmuTCZDl69cJZfLTel0WvTj8Tj/ikomk8KCxCxwOSJ1p+CqHni9KBYL+LSzwzbeh8PhEK9wCo1GI1sYI1AqlTAvLDCvbzEzMwOLxcK2X8cI5HhLAPgTihrF/Pw8JEmFS8yvTqc735fVCAutVksUx6jEmyxAJpMJjUYD56FSqYYE7CCColarcR5Wq5VL5TWJQARO4jkPh8P4T4jLNZaVf5XFkDpOLSbaAAAAAElFTkSuQmCC'
  2703.     Local $bString = Binary(_WinAPI_Base64Decode($Resize_Icon))
  2704.     If $bSaveBinary Then
  2705.         Local $hFile = FileOpen(@ScriptDir & "\Resize.png", 18)
  2706.         FileWrite($hFile, $bString)
  2707.         FileClose($hFile)
  2708.     EndIf
  2709.     Return $bString
  2710. EndFunc   ;==>_Resize_Icon
  2711.  
  2712. Func _W_Logo($bSaveBinary = False)
  2713.     Local $W_Logo
  2714.     $W_Logo &= 'iVBORw0KGgoAAAANSUhEUgAAAL0AAAChCAYAAACSw77QAAAACXBIWXMAAAsSAAALEgHS3X78AAEEOElEQVR4Xoz9d6yl67bmB/3eL88854pVq8Ku2nmffHPs7HaiDcZyQiDZgEEI1AQJJIIExgQJS/wDCPgHCRAGbIJTt922u9vdN517zzn3pJ1TxZVn/nJ+UT8qbdFS331d5yyt2lWr1pphvOMd4xnPeB7z7f/6iR15M4o+Jan23Bu9zj/3C/8SwcLBej2fXHzEi/PnzGYzLs4v+GjzU759/Ev8d/7Z/wH/3z/8f/K3fvof4DgOp5Mz7hze5cunX1K0Bf/L/+L/mn//J3+N89VLvrz8nPFgytX6ilE45s07b/NPfPuf5GeXP+HZ1XN21Y51vGY2mFPVFba1/M/+S/9z/u0f/bt88PRDHpw+YJ/uifwBz29fEBIxCkb8C//4f4EffPgj/uBnf0ScJ0ReSFxlfOPO26RFzv/qv/0/49/63b9OXde0Tc/Tqxds4x27eM9bd1/nH//Vv8TvfvYjvjx/znq/Jcky3rj3iIvbGyyW2XDKf/c/91+hpudf/xv/LpvNlsvtCtfxOBxN8VyP/+3/6H/Kv/8Hv8vHX37JPo7Z7Ha88/gN3v/0Mx4eH/P43n1+9dvf4Q8+/IhvvfUWf+3v/A4/+fhT/um//Jd49uwZx/MFv/mrv8zf+L0f8NOPP6OpG+6cHLPd7ambnrdfe8A/+lu/yCdfvuT59Zq0qHl4dsr7H37Kd7/xNrbv+ef/yp/j+fWOf+3f/I/57V/9Dv/vv/53SdKCx2cH7NOGycDnf/E//K/x//prv8Nnnz/l/GrH64/OSJOM9TbjH/vzv0AQjXjy/IYnz6+5ut7yjbfv8c13XuP/9e/+IfdOD3h4/5B//p/6s/xP/uX/C03T4RiHLC0ZDiNCz/DP/TO/yt37d/ibv/OM1XLFBx9f0/WG+WzAG48Oubjc8S/8577H8wuHJO34gz/8gulkyHg04PVHR3z/Dz/n9Udj/tl/+jf5f/wbP+L8fMvhQcDLFym7fcXhgc9/6h97xP37cz76sOaHP3rB648P2McZ0+mQ9Srl0aM7/MavH2LthH/hX/gVBgOff9AvbxgOMU6PV/ocBWeMxgPmkwU/vvx9nq+fkCUZnufz4fNnOK0HwCI6om1bBv6AwAk5npxyb/gaabNnMTykSC4o6oK+tyzGC5q24XJ9zr2DB0yiGU7l4uAwG87Bf4qtLJPhhLqpOR3eYZ/v6TsLwDAckOYpVVKx7fY41uHh2X2qosHpDY5j8D2P4/kR22xH4Ae8f/kpjxcP6LuO55cvWe7W7LOE1X7Dtx6/R5HnuI6Dpcc1rp5LmmdgwPc93njwiK5p8R2fTbxjk6dUbUPZt3znrXfYrLbs8oxHRwvysuDl9SW7JCHPMgbDEevdjtb2fH5xyd2TU5brNX/3Bz/Q4fvw8y+YDAb84Cc/A9dlmxb8Q39uQBD4HC5m2Lbj5eU1vYX5aISxPVVVk5cl17crTo6PdDBm8wXPL1eUZUldNfz4/U9ZbTb8zvd/jMFyshgxGvg8ODvm9nYHWJbrmDAasE+v+flHz3n3zfs8uBsQZxXvnt3h489f8uLiFtsbnp+vyYqOwHfYbPe899YJq9stJ3cWCvjdNiNPSh6/cUZfJtR1w8vzW9abhLp1ee/dM66v9zy4f8zt7ZpvvHOXqvLAwiefPsd1egLPEoU+3//BFxwdGHwPDg+GzKYR5xa225aDgzGjkccgsjpsaZKzixuGw17f39Lx4sWWLOuoKsvjRxFHRyOapsF1LcYYHMfRhzEGAOfN++/yxt13mA8OeHT2WIG33qz4+dM/5qNnP+dyc066y7ncv6QoM0bOlOv9BU9efslnF59wOD/i5eY5X95+xvn1OU7n4ViXKm70Jn/y8mO6tmPojNllOy6WF9Aabm5uiJOEtukYmAHTwYy6qsjLXC/g9fKK57fPWGcbirSg6EtMB571'
  2715.     $W_Logo &= 'SOKUq+0Vq92apm4ZhyPc3qVuW7qu4974hLZruVneEgUBToMyue16VjdLtnlCgMdutyMrMvq+5xuP38ZgWO22TMIh292Wp5cv2Md7yqJgFA24e3TMKBpS1hV3pnMu1resVyvqqsazlmgwZLfZcn19zXq35/jwQI9pMBhw9+iQH3/4IW3fKwmkeUbTdjgGbi7OeXl+wfXNkuvNjskgxFrLyeGCZxfXDEdDgnDA3dNTkjjmZrUlLyp2+x2L2Zimszw7v9XrnKYJjx6cYoxltUm5vl4yihySeMf17Zo3H50xn0S8/cYZl1c3XFyvWW5iBdwgCrh7eoAxjt4LYzvorV6fssgpq4LZfMSzJ9dUWUxvrd7jLC/Z7FKqqsDzDGHkMog8XKfl408veXae8rMPblhtSparHZ7nAQ5xUvPyYs29uwv8YETTNnpPvvzyBtfNSNOUtksZDkOSNCcMXE5ODvnJT16S5xn7eENdlYRBy+uvu/T9Ds8r+NnPnnN+fsHV1RXL5ZIkSXQIrLUAuP1bm395H++YOgueLb+E3KPOGnb9ml94+OsK8Ovsgt70uFVA13bKPDOO+On1D7jd3mIah329oy4attmGsImwFayKG1bJkvnwQFepW/tM/RlJFrO/jan7kvcv3uc2vaXcKbBpy4ambRnUEf4koK1a4nyPdaFvehqnocpKaCGsfK7jWzbpjvPVJZNojGddVOrYkDERSVvwYnXOPo957fABSZriOS7XmyVBAR9dfKnMZdueotbPZ5XsOBjMaMoSv3P45MUT3SYnswM+/PgT4jKnLkqqumaIyw8++5j1fs/V7Q1lXSuwF5OJXvA74wnPb2/50cefkmQ5URByPB5j25becWnynDrZcbnasssK5qEH1hK5hjTLCV04Ggb8u7//Y3bbrd7kMospiwy6BpqCvq358YdPaNsap+vYxTmH0wE36xiXhqwoGAXw/ufXfPL5M+qmYbNJyKpef3/vwOXyeq2yZ7nc8ODeEbOxy+XNjqLqGIYt02EPtuWLL5dcXaw5Ol0wnwfEqyt2+4Km3jIYWL58UfLk2Q113bPZlrqJF1OP4cBhvbpkGKUs1y5ndxbkecHBvCONbwncGM+raJuC21XLdlcynURsthl9l2L7hrunDX/zb19z53TK+eWSPO9wnJw07fHcltvbjsViz5MnGVF0y/n5c70H1lqGwyFhGKKM/9v/zfds0ab4/YC8Tal3PZP+kJvZFxwH90hWBaXJaMseL45wap9BP2I0nLA21/SNBYNKGWMdZXlcy7F7h/pxwm4bE4QB5a7Stek0rn7wMBnjnhm2zpama3A7j4E/pGt66rLmjr3D8XdPeLF6iY9PEIZkdY61YLc91sC0GnHjbwl8n2KbgzHK+K3tMDU8nj2gOjSkScoq2+K0Dn7oE7UevufDpmY3acEavNYQDCP2efbquRiM63CvHzI+O+Ey3mDanqZqCKxRuWEx3BvPuHaBrifLM/S9MOA4+HXLUTSgHY/Iy4p6t6fBMDDgWMh6CFyX48glbS1VZ/GwNNbBM5a2d3CM5c5syHVSQ99jMEROR9MbfEfXN8cHc27ihr7KaDsD6MeDVaIGazg+GHKxbmjbHkOPxaOzBnAYRx5nd4/5/MLiUpJnJQ4drR3impZhUBC4PXdOFnz8SUVTVWAdPK/GdzrAMho1HByNies3SeMVWW6ZTKYU+Z7Qb4Benxdzl8p+W5naM4V6EuOMwDZ4bkbg1zx9eUzoV9y5E3F9bXXYPHfN3dOM69sz4r1LNFjheyWu0+A4lukkANMyiDqybMC9ey1h6HHv3j1+/dd/XR/379/H933M//r//L+w7z/7CV4d8NHlzzl/ckVXWepxSrs2dGsH4xhM42Jcw2QxoiwrJsGcowcLri4vqdpK5Qyt0ZVnO6vgc8ZA6+B4RtcgOh16x6E0mAh636JINoBr9LXGGEzucP8vPiS5iilXlb6mLTv6uqcvO+jAdNCFFmvAtBaM0ammB9Oj'
  2716.     $W_Logo &= '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'
  2717.     $W_Logo &= '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'
  2718.     $W_Logo &= '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'
  2719.     $W_Logo &= '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'
  2720.     $W_Logo &= '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'
  2721.     $W_Logo &= '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'
  2722.     $W_Logo &= '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'
  2723.     $W_Logo &= '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'
  2724.     $W_Logo &= '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'
  2725.     $W_Logo &= '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'
  2726.     $W_Logo &= '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'
  2727.     $W_Logo &= 'CsdwcnzAX/xLv8V/9Lf+jrbDooEPorqK0qzDnGcpo9FQB9ykuQIf7Q0jqK6V8pcVicv0yLPXAmCoWqvh1OF8pOFTX1dYdwDaCQip3ZFgy6btefzglKtlwuFsyNJarVy+WHa4QaQbJS8baVb2bQfWIW983jx7k2h6j11imU3GoigL2cp6Vk/+HYaTe6x2Odt9Qg/C6qNBSFm5alZ9LyDexFJbiIahlOwCt+Xxo7f57Mu1uD6OE2KcAXnukZeW3b7h/lnIdhODLSkrVRQs1y1pNsAxsE+tlkWgxvSO7O/jZMwggnjvCB2MQj1WBoOW1cp8/ebUT579WKYH+2ZFXG4pq5LdVYzb+3qzqq6gSyAgpKVR0DRFQzQO+db3vsnq4oqnnz1VQNdFI+t0x/VUajSVjNDwQ5dQcGOvcXvTVlpXS/cFedbos+d6egMMAMrEtF0rpKNrOzH0jPB+gwEAcfcjEzD1xgSOLwiN1mrw5ASuePtFU+k6x0BaZ+LXp1UmmDBZ7RjOxmzqRNPmTRYrsPu0pE1zlTBu4LIvM2rbscoTHYpKB9gKBdHrYZA/FbYnznu+80vfVt/SVOoNSPY56nHCSJPpRnLYribYnmcQNq0+ontluykoEwy0nVzQX70ePXnVkCQFndWBoMl2AILyItfImfB6nXK7TkWu67tGSNDy9opR5Eu6z3YV+zSjKEqKbIO1Vtm9KBs++/KSKDAstynLdcJ+X2C7SrGQ7ndkchf38LW00pFmhUpSPwqkMnH37pHkCffrDZv1Uvj+yXHHvXtjBWsYdqw3rWRK4qTAdltubkp9rWHHeDIShQEmCtw8i7VVpQwge84Y8JjPZLPEw4dgrUAT+dAa5w5R1H89evPmnTexdByMDknTktrPKbKS6/oFtjQcLg6oRolsdAovJlkWoherxLhNef2NR2yuV3SCKWvV8PtdgsUVRBdvE43L+x59WIvGzNP5QFlut94JNjTGioUoc1ujQFCtmBc508lMdIfIDckSPT62lyuZpfnWp3N7WWkWea5DlW4TYf6+8TRvSOoMLGq6tss1TmVp9gUK3OOFFkHW6w2+6wqTPzk+Vmlim05X93ww4XK/Iq9KOYNfnp+zWy7ZpangymAwJKlK1fHvfPMNdttKtW4WZ1isatwizWSo4Hg+WVKQ71PBumIqd2AMuhkGQynBASCX6yAEcW1eqQA3nQZ504EHbggWHNREq0n0HKsJuOu5dPgsNwlgaYqUTVxKbjste+lnOm6AtOgdj4PZgNYG8gG7vNkQJ6VuDIC2zQU55ulG20x3zu4qi88WU204La/W1GUjUCBJC5Vqd+8cMxkdkOfiFPHgrsNiGrJdnuvQt13LfBbg+jNx/DFjsNKpV5a/XfUEocFaj6qOhRI6utUygnDO9a0hzw1xYsAu0bzHLMizZ4zHfO3mlHMwOCKvMz69+lQDiNptVJ8dRafMDqZcF5cEJsTkPm3WMzkZYlzUaL353gNent8wGo/0BpdFqTcuDJS19eZJmatq9QZjjLK+8QVxia4QRr5QC9c3TOZDwqEPAKAX0WLJi0wNX9ZkOJGDDNICR7V8Jf10GPlDkbsO7xzjTHyMA4Cu9bpr2RR7DZjSJBPe7Q59sTWzriSvS4azka7lNi2EFHWFdNWpbEdZl0ReiNdZrOdgPVe32WI0xjMunfRjfHwLuzjj3W89UklVN5UOfVkVTGcjuQ9KPRkreK+tWjXNxjVCPXCEGH2F3ojiUMs3SgFdlaVOyHA8FmypWtGPCH2XddKQFLWMDKqqZr2NpRXZWtQrgOFoPlC5FzgtuZ5fDcajrxNtO8W6QVxcb6BdVH2IMOgRDg6YLXy+/SuvE039V2uTHmf37khHMt6v9Z5P5xH3Hz1kND1mOpvje3BzdYvnwaPXzzg8muC5pRCkzaYkzzstulgcAC2QjIcuJ8eu2J6e78kFPPALhq9sTqtKLiikKnsqut6VHElZ7oCRKA5fW954jg8gTXgNmA5q6qwj'
  2728.     $W_Logo &= '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'
  2729.     $W_Logo &= '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'
  2730.     $W_Logo &= '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'
  2731.     $W_Logo &= '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'
  2732.     $W_Logo &= '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'
  2733.     $W_Logo &= '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'
  2734.     $W_Logo &= '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'
  2735.     $W_Logo &= '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'
  2736.     $W_Logo &= 'bSvEpyqLr2TfXRcm04CqcCmKDDQvaIkiR0vjTb3EqrQxJOldsAEQs9mcfn0j2+YwDRf0FdRVT5wt6fKYmy/XBFMPeTjtO3B64cXhfUP5XObKWMeFwFP2Vobue0BvFq0wb4mVAi5gAEuRVjR1KVxWzt1lpSzgOEaEqbStAQBU7ysZSui1fvXi+nS5UAShG3mdK9D7pqdvrBCbvuoVtMOzqRqhERGr1VqqZlI6G4c0N6kC9zYTnv1KemKPNqQAJwzpNDrvWe639FVD50QkdUmvfVeHNs2EnbvWCNfOtjtO7z/UqB+DsrrjOl/RLJqm1fXedwg/VwOHRVPNutPU0bhiHGLh1YS7Q+zS7RbHe5X1y1SWO+KqW6urPV7fanKJcbB1QZGtCEaHtOLuCJHhcpVxHDXYHrAth2O4vFnRizJScX6TMh4N8PslVd0hr6omlucUXcloEOKZlv3qls1qK/RpEIWIsoGhzFphz4fHC4ajMdPjKTiW86cvuPvoIS29lpDCYUSTpHpdQBkO6BXwgKb1UAIOTb2RvQ6UQCgFufW60c4uZGB6YAL2E8DVR9M80+IJeP/goP9zj/4xAi8Sz/nj/UdcR0tMHECFOOTO0CIUvIRq0hMeO1oJW8bXXF3eUr/VaEKojI4Ud7UJVNcuTd3j+6+cNYzF+BBEDibptCyhJQsfZeq6riVt11t9D7DQ553qcahQ41RbSfsZV7J+0BX0VaevA2VTBZIU0uqO9NlWV2lcr8ACIF4OQN9p55byfIvRQAzKdIPErEIfJ6hoY2loUp4vFfSVtxOKAyiIJOfddnz2wQc6QGawoCzFL0egSa9aFfF8hFTVWhIPwoH8V+W+iMULDMbpEXKhaabVB22FtXqwNFmMMiS9XEccHJUTrXWo64xpG+PXazEvPdfRDVGutqJv9+6KXrdXws3zVq9RX+15uR2A4r9S0LfJU3ZJh29KbFVKvKnB4FERDGeM5kP8yKfIs1eeUYG0gjzXF9xqO8vx6am+xgt8usrKB9iKRyVgQc+3t6DnAkKBhOeZUjc/tEAMNIAvGBKGQA7UQIrtfozjbAANtYQOgqFujpRQDg56ttuvyfQv2y94ef0MGvio/oDqZMdsPePoWyPyMiMu9/jNkOQ8Z3+TUS9b+hz2P2gp/lxNXyvDQgf4Lo6RDDdZlYlz0zeesrmMlEGITTSIwJWtvlbk0qQEDEVRA3y1OTU/Wqh+bftWN0ltGoJRqIWKOq5wKsPhwxOKviC0ISUiTckm6OrTc15/8FgvftnXuHgsyy2hKyM3OYrk5zuRvoJhhMERhfgrHU0M2yQmTFruPH4ga82q68TPj4uc0PNZ3i4x+5S33npL22Jvv/VN2t5QZSVYAHSIVc6AFkJSm6kPqktX00sU3qrddbM1nQ6uAAE3VONJVxXcuXcf63jaLQ6iEeu00dYSvWVQ3fLam98QF32bNtAL7WEQBkSyHYLPP3mf06NDhvMzpNBQW4qqwwBJ0VLunvD2mw80+NKSigNNJyiUYehwflvKI+r8cqMmWlrxmpTDbr1mkA94+MYjRpIodNhu9uz3LwmcXksyRVGIkPiK7Aeg5OU4HhiP4fBITWyebzk8vMNofEDbRlxdw2gE4/GcLF1S5J/w+uuvYczr5KWPsa7g1ngPlQ7xl7r5jLn4k4P+dz79G9yZ3UNc7UyePmJXhsMDqihjaANMA8arOHjHxwkM8e/3/IV/4s9ycHeE1tvQEwBrqataSr3T2ZAwDPTffe/jGk/duh9YNW6N6TV2N7Wj3Vg3s5ShRxuFCpKeHjXBTYf0byJfdOJluWG5W0FrWYwW+IchrvV48cUL7IHHLJyQ70owyP6eyCEua0JjsL7LMJqyyfeYMBQjs4mMSF9d3zFxZ7qqn11fYAaBDldZxey9nrPFKS83K2rH0JlQ3k1m7Qih8SZjLZucr9a8/6OfcvroQOWaleaOK3EkuW9PptLsHIahJDJk2Rk6aMHaAwnW9oAB0TmiIY0c'
  2737.     $W_Logo &= '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'
  2738.     $W_Logo &= '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'
  2739.     $W_Logo &= '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'
  2740.     $W_Logo &= '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'
  2741.     $W_Logo &= 'yKEoYDzxxOmP9zcaWOX5HsgAV/H8dYHvZVXKxB6CG5C5Od3WFX7reL1UzzbrNVVUUW97xHOvUCNbxy07b82zzQccj9+QP3/SJbKMnC5cQjlJ+7RFRd1BNxpp4mc7uL6+5Pj0mKPTYxkBe3dOREyaHo7YrjLSdawg8x0fdzJi7Mmb9tUWkoZn3F7ccHh0xPzoAJUhjbZyqCtNcamrSlNafR8jfj6hH6hc0RY+VhBpGmeMx1OGowGu7yh40v1OevdZWiqjmlc6+t7IU6AZBwDo0VVdZNc8eHCfg6MDHTzfj5iMR/TW12Go8lL49sHfuxUfniGDicritqJkU1mjhe7Lp0/FT4mGIU1Tydjg+uUzjfvj8xtorSgYomOMPW0gGQMAVkoEpQL13v17gnttp6yOY6CuO5U5eSaJdD0P31nQY/W69J72kxEztnfI0lz9UTQMlTSG0ZD9eiOlutX1jtFwpIEhERzeP9LtrUmtrakcl831RirN3/uV7+GPfVo7pMgy5FyuUsxqGR8M4AC6hfRzy8rKBh8zpNaedAkkIOIhWh188uSG/hVnCbsDcsABtqxWC/r+a2r633z7L6phvVld8+yTcz6oPxalNn+/o6sT6AHT06bynqLNLF1p2Z+nxJeG//iv/cf81X/pt5Ulri4amYxNZxNlkHAcanwOLrJ7vF2JquzicnMFp/fuYoxuCR48fMzlxRbPGE6O55qkepEv/L0oC9zcwfQSTlJzSg+LwwM0+XQdsiZRjel7kTDuVjdMJWeRhgY/dMUN8l7txCbxHhkiuJ4OgmQyxPWxTGcLikJ/x2AaMFA2HeBIRhyw6EayWIrVRgd8spjrJhkMBjJcdpnqRgKfIt3Lefu1Nx6pGZ2fTMj2mVyxizzj/MlLUT0cY4j3OQdHh1S1x7DuGE8XpFktspnvadqtnV2j3kJpEhAVgXizVzBKGDeUkQVFmklL0hs5qtn7NlNZMTqYU+PjBUYJQyS2Vvan6IA4Ln0Ho/EEV+WgRxbnZGktAdnJeMC9B6ccnB4zmI71XEW17sFx4erFuZIAjgOtRFxF4ZDQE47iIc9TLY4AQC6uT1msgAAwoL+TNLx+Dw0rDacCjFnimu4rNYa2ha5bYIkIw2dKjOD8g4N+Opzpunnz3jt8cf4ZXuQwHx5q6FLYhMLNiBBiQdxt8QhYxnseL94SgvM8/ZTaKXn9zTf5+P2f09uWtq1Um9/c3GprxqkrXj5/yjAcikZ8dveerunl5RrHdfTiHJ4cc/7ihrM33iCa+LKMb00rekMtDD2k8To8A2V+y3wxV9DXlSapMnAIoxEdWrIm3cZEoZQHMNYjSfYqabq2k86m78h4WZY9nejNvTJ5OAjRVb5LOVSNHoru6oeBXshOmdPR4XBdI3j28PiI2XyqKavverLaH44mhJMRbdWLOjAeBgQSf/a4vFzy2muP2axvub45x7WuBlSPHz1mH6fqVcKhI1mQ8WSi2/Pkzn0hWo7Tq0wUZweDUYIERwoFpW7P8WRMXcn0TUND1wuxDpRpqeCLBr78cSsa6qaXXU9Z5rpdfNen7hs5fDdqijsm84hBNFDpSGe4/8abTOcT5vOxjOKwRjFZla0Yl3XVqEJ48Og1xfxus6Np9b2RqZxnRD0Wkc5xGQzmaHEkXzFfHNO0Dq47YLvzBDV7ns9uD777gvl0oq2qm9uHHB/1bDahPM1WK8vB4YzN5ksNAoti8yeXN/+H/+hf5bfe/Id4//mPicsdhfGIpmOmDyLWzVPatJcKQOUWHHYH1FQ4nxhGD0KGJuBF9gXf/8F/REgoWMl1Az3IoiwpspSXecHJ3Xs8fuMhaZJK/PPe2/cZD0cUeSt47fL8RpnzG99+B38QKaBC3yEtSzWww2FPjsvQWvG707TgrXffVBPYNo3QIpHGegRHnl/eQg+j8Vw16s3VhjLPdOscHJ9oSrta3jKcDTm5cwcDJEmO56nOFnFrPJkIkXBdVxBcJzkOV+QxHBfHdEKj'
  2742.     $W_Logo &= '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'
  2743.     $W_Logo &= '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'
  2744.     $W_Logo &= '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'
  2745.     $W_Logo &= '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'
  2746.     $W_Logo &= '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'
  2747.     $W_Logo &= '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'
  2748.     $W_Logo &= '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'
  2749.     $W_Logo &= 'jhdaujd+RJzVCmhRoeMlodPy4N1f5eJmTZUlAEKKNJzyJ/R1ilMvGd75nhxRuvwGrAE3VBNrq1h2+M7wAUbbTTXGibByFxyChb6+QnJ67gTbbgGLsS2eaySJWOSZ5hRFUdLZ8NUQKWI+n+j2N85Edbljl4zmv06yP4e+BFuDqXAosQwx7PH9obg8CnRcwAMcYA/O94AI7A2gQ4dhJ7q4fKitI8JZli01u3nzzTf5K3/lr/y9D2nfBEGA91f/yf8+Xdsrk/7oh3/MDz7+Y9blJemH8pfCtuizMzR6cw5eG7J7knI3eo12WEv6Ym83+AQqexrbYjvw64jBLMSOZQkpgaSyK8nJaZ/3vPcb70oWEMACkvpIY/R8rqH4MOfOL9xVDW9dCG3IOt0w8CKVN5svV9wfnNG81cn/qaUV1Og4Ltt4J/Wz4oPnHN85hcOARduzz1MF8zAccufwhDEhp/fORA0Agx474GAo6lqiVM064eTuKTbwNNBq+o5K1p6GtK74vX/vP+D+4REYw6bI6YDZeEJSliLb3bx8yfzkFC8IRQmmbanLSrMGm2X6feC7wuP38R4H0KF0HPHZsVbB2+cxaVehg2F16gCRd3TTnH/2Y+HvffPVawpdS+f4mpbS1TQXP8OxtYI18AMcp6FpYqZH99neZhwvQrreJdLyiUPVTr7S7ayru9h2z3RxyDY54mDmcrUKhNcfnc65ePkBDx69yfWy0qFxHR061ssnaK7XrfU4uq4i3fyAwIfB+JDR+CFt57HZBWAixuFHzBffIs1jAq/h9maJ7Ve0TQY0YD/EdVsJBvSMCYIzDg/u0jRDlrc5VXXF6eldnj77vT+5kf3p+R8JqSmKCv8Uwu80hBuHR6+/w/DUp3FLVt0NbdExHx1AaKluW+ZvDfGZc755ydgdEo4C4nZPt7NSvW2rEu/OQHCgbxyKLqPqKgYmYmP2XL645OzxGZflhQ6MTM4GAdfPbrC+VL6kC9kceRz5R+yqGGfkku1ymqwVVBneG1I2MaVtmLojVrstZ9M7GC8js6WcBqu+ZhSNZJXfZxYOQgpjNdTq45a4zXny8jlxVzIbTgE03Gqzmt1mQ32957u/9AtkgWGbJYz9Ad94/U2hN/2uVb0+PDmitxBkIfPhSNBp4/mSK+nqWsOkSIpkAVXbU9YNVdPQW0U44IkqPPN8jOp4Dbw0YErTnCLe8Prb70ogtjG+9HySspclz2qX4O2f861f+i32RUf7yv0wKWp2m6W0ITf7nHb5M9755i8DRvX05aohr3sCC60b4PgrTu8+xDoDbtc1Fqi7hLJ2cdSE+xyOXUbz15kewPlNyWScI2XhFiktFJXLcHxKnHQMhx6rTcWdh/dJsorQM2xWLwmCF7z1zp/DqDcIWW+hLV9wenrM9fUVfe+qH3D9uXD3u/cfY2zD+UVJ13zKO28fagqb56H6h7YdSOowTaCuLwGXLHPg6/j022ytU7WMb1jv11RehmRwhj3b8IbD8ASnsRyMD8i7lLAbqd7aVEv5Trlzl2EzpqFmXCyo3Bv62hI4EZ71ua1uuB89pCCXclbdNtKATPOUwhYkdYJpHdXp1liYQZAHNH5D7TQUtuS6uGa3i+XHuh/F2PIVzZiaxWAhaHST7xCaE+8IjAcAtcU66PAUaQ7WshhMOJocKGPn6w2VaaWGHHYuVZrLadvD0UZ/GIRCbMQzL2q6PCcNWmTqULfUSUoUBKRxTGx7mr5n2g+UJcuyoETTUe2DemGkxrZ3HYLhUEptu30MjiOUIytL/CCU9+t8MiYtSsmD4PqoLDMBvTdgNhpyuy8JpAvvMgh8es/Dj0YqpTZ5zthrCKMJs7klLg2uP6Q1LtYdarBU9z2dbTiYjumanO1uJ+uiuioYjIdayo/3CXnlMPAbLXIn8Q2l52PSVvB0mWfMZyPKIqboPSw9gW+5umoYSCpF4qzcLCuwRkmIPsc6ULdDAq8kyQxpVtC3R+S3JX4wpWufUFVSvcMY'
  2750.     $W_Logo &= '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'
  2751.     $W_Logo &= '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'
  2752.     $W_Logo &= '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'
  2753.     $W_Logo &= '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'
  2754.     $W_Logo &= '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'
  2755.     $W_Logo &= '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'
  2756.     $W_Logo &= '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'
  2757.     $W_Logo &= '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'
  2758.     $W_Logo &= 'eb/8jGc/uqI3HeBTdi3JJmd3cI7MFwrL+WdXZH6sSepH/ScikLkTh9ipJAfSpJ2Wvu1lR+G2xFVC2pZiRVabDbLmyRtWP96w6ffsmg0DdyiJbid0VMOX64pPf/ip9PEtAJDXubK9tdBmDbcvbzSgcnFZ21v2dUxX9poP1NsS27vsP1tqFXBnb5gFY+IqY8uVeoC2qNl8eUneVtS2E7rT2o6irGjLSkFVGZf6g04MSKyRcJWVyJAPRcXlNibPCpJX2jgDP8AJQnZZJhJZbwztF59rfdAAWd9TZzmbLBaMKG36Kmf19HOywKesW8qiELv0+//xBXGcEjqCYJkujqXXmJXtK8hWOwnE+y217xLHCWBI0oTFdMJ2t9b3SfMap8vJ91dkyZY2aXieXxB6PW3Vy16oq7bcXnwsZYMma7jYwGjgShR2EHq05YZ91mH8ijp2WUwcUjXDliaDvtiDzVhe/UST/EY2nwf09Y54BePJBNteUuY1WZoSBBanc9jcdkBPnaeYfsN+X1B+/hO2u04o0fL2OVhDvIe2KenaLWX+M9LkuaDVLC0YjUPaxmG3S4Ab0rQStQI8/kG/zHa7tXVd89lnn/HX//pf/3sfWh0TB8ba/19757KCMAxE0fqKj/haVUI3gVj7Mf3//wi4U1G5l2BEdK2t98BAHl2lt2HITDPF1xEIgFFEzxhjmErxHsFDB2N4P33btrB8P316AH4bgkFYYAQ8fkv0gglgL/A9fUSi58/w1lpE3rF+HANjNGAQfFmWRV3XPBZkcavuIgQ38qpCVueOlWmS1rnTI+zLMuVN0/CriDHSX+wuQlDXzCHy3kPf7AOI/lFvNYRQOOfgP/bFtRFyceC50LLo8ySFb63tjeCFSAlsMLY5FmP8K4ULcQe8she5/0DNvgAAAABJRU5ErkJggg=='
  2759.     Local $bString = Binary(_WinAPI_Base64Decode($W_Logo))
  2760.     If $bSaveBinary Then
  2761.         Local $hFile = FileOpen(@ScriptDir & "\W 2.1.1.1.png", 18)
  2762.         FileWrite($hFile, $bString)
  2763.         FileClose($hFile)
  2764.     EndIf
  2765.     Return $bString
  2766. EndFunc   ;==>_W_Logo
  2767.  
  2768. Func _Info_BMP($bSaveBinary = False)
  2769.     Local $Info_BMP
  2770.     $Info_BMP &= 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAC/ElEQVQ4y1WTTWhcVRTH/+ecd9+8vAxOJp1OZqaddqGp2FrwoxVSFL+omIVgQRFBEFy40YLdFeqiICjSpeBGERdurVDJRlRoqsXix0hpopZOPsQkNpl0Ms6beW/eu+9eFy8TzYE/XA73/zuHe/kTdhUhl987MXH349PF+iNPKX9vPdVJHGw251qLszOd1V+uGh2Fux3DgyhVP/LcSwcefu2c8fZN6pTEAAARiAAyg7C78uO3y9c+ONdv/X4dgAUAGZrvPfH62dqx0xciFCupIVYu48UnS/BzgpU7GhCl3OLBQ8WDj033Nn5rxN3VP7cBhANHT71cO/bmhVArD5RNLRVdnH+1jrwvmL3RBTGDmOCMFMby1QemtpYuz6SD7pZ4+fLEfSfPfxKhUAEIIAKYECUWjWYfV+YD9AYWJAwWBgnBHS3usSDpLH//FZfveeJZ41YnAYLdNhfyDt56oYpTj47j5EMFpCDEJlNiCNoKjU0+87zyS1Uu7j/+dGJYLGVPaiyw1Te4+dcA08cLmDqcR0oMwwwrDOsIjDCcfLnilyaPOsov160FLBGigUGYACwWPzf7MBYgJqicAzCBhcG8/XGGHe+uSs1JdRLDAv/0NOIUcJSAHYY4DABgJrieAJz1/gewBJ1wt3VrrhMkCAcGxAQWyi5KBiDKNsiNKOR8hdyom0npKGwvLfD6wuUZHUchMYGHEoJINomYoFyB8jKI52fSnYWbwUZznoO/G1dNu/ENUzZtB7SzAaCUQLmC3IgDb1TB90kvzn76cToI2mx0FG5e//Btjm8v0zakOq7wxvQ4mIH9RQevnMhDuQzHFXgjjr3906Uvl659/hkAKwCgw9a63vqj4U88OOX4Y3ssM611DL6eC3GlGWPxjkE3IeQcq1d/+OLSdx+dOZ2EnY2dLABAEqwt91dmZ1hYxC/XNkPXb/XAmz1ju/0wjNbm525cfO/dXy++/87QvCuN/+WTRfmlml86dL9XqOwj6DhsLy0E67fm00HQHqZwWP8CK9Mq6VjIuHsAAAAASUVORK5CYII='
  2771.     Local $bString = Binary(_WinAPI_Base64Decode($Info_BMP))
  2772.     If $bSaveBinary Then
  2773.         Local $hFile = FileOpen(@ScriptDir & "\Info_16x16.png", 18)
  2774.         FileWrite($hFile, $bString)
  2775.         FileClose($hFile)
  2776.     EndIf
  2777.     Return $bString
  2778. EndFunc   ;==>_Info_BMP
  2779.  
  2780. Func _Visit_BMP($bSaveBinary = False)
  2781.     Local $Visit_BMP
  2782.     $Visit_BMP &= 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAADiUlEQVQ4y22TW2hbdQCHf+f8T26NSZtb27VJui1NXddmjdTVjY5ZV4YUwZcNmdptog4EGeLAwhQEffRJ++gNBaGIuDlxOoddnF0vazMXs0baNO2StLnf7zk5Oefvywp78Hv/fU+/j+AxTpjNA1+eO/uRjiUKq1Kp3SeTdR7Ram2cKEpPMozZbrWOZySJ43k+jv9jyGTqzP44s05j62JzZalavXSpcv/M+Xpy0BHLOJ35W1NT/i6NZuDxDQMAHMsyk08PH7v88ksf2w/2jTJCQ4ZwDPCtoSqK8JdKeJBOLn++7H5rIZf3SADdFRAGwIVe2/j0hde/6hx1PsUUowTbAWBfD+jkObi1RrzzvQsrDyPtg4wwpJcEX7ApRncNpJtlVZ+OHH7T/MKzJ4E4B6YIHBsDb+tHOhyDa/YugvqjCKmHiDdTsk7p2Qlbo7TtFpprIkC5Lp2uvXv40ATkWQXKbkiWfpSJBM9NF3ZWw4g3lBiyGVBrUMy3HsCHuWr3r93CF3wkIEyX6E/kbEfHxNheo1NhzFvqmgA8yQ5c+2EVgRyB48Q4TLYBVGgLNhMFBIsi8jIZjDSnfFeTOXC93PyZraTTYTEr7BEFN1x+Ce99toYVdgS28TfAmAZQIQakJBVCrAySpR3U3os5TQdklGs5pYKDC3AcL2wEcnx/yPrNH23E1xiBrv0kvIlWbEY3kC4ncSdZQ0hvBnq0QCOFzrYCAq7bpgKLAqcmRDkbCv3y3PViHxthW7KqDDu/7MVG7ggg0yBeSyCr4EH7rIDRCFuR4GKihlSzEqwooScsz5NotRbrTzTtIU4pekSVsVitIwUjUm121AwqwFAF02vBoCKFr5NzMF79Dgu52O87RfxJipSWdiiNQ6SUUppTK7jDYaoiknUUMOlA9BJ6lEGcr9zDdGgWvfM3sbi8EL9F6IwrjRtEBCgPKFeBZlRoao63QjdmkFvyOjnjsNTwvH4Lb8ONM9l/YPL8hbnbC4krDfHGUgW/BesIco8OJa8DiobxCZX+9HHFxcnT4gd7dKyi6gcJ+oB1H8refzF7P5u6HKUzaglbmzwiAFjuURDFowe7yCfvv/KqY3i/TW0ocJRuoBm/ioLXJ209aGSv/I073/pxLVaHjwUiEpAGIDIAYFAx8teeaXtxbxdv6NlPR7V256FyvVl4uBoILN7NL82v08XtInYkijoAAYC4G9N/m7ynOQ6efeYAAAAASUVORK5CYII='
  2783.     Local $bString = Binary(_WinAPI_Base64Decode($Visit_BMP))
  2784.     If $bSaveBinary Then
  2785.         Local $hFile = FileOpen(@ScriptDir & "\Visit_16x16.png", 18)
  2786.         FileWrite($hFile, $bString)
  2787.         FileClose($hFile)
  2788.     EndIf
  2789.     Return $bString
  2790. EndFunc   ;==>_Visit_BMP
  2791.  
  2792. Func _WaterCtrl($bSaveBinary = False, $sSavePath = @ScriptDir)
  2793.     Local $WaterCtrl
  2794.     $WaterCtrl &= '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'
  2795.     $WaterCtrl &= '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'
  2796.     $WaterCtrl &= 'lc77AP//K8sr+yvTAI1DAYlV5ItVBPCJARDMilABiwBd6IgUAYoQiAAUB4pQ/4gUAwCLVeSAJAIAgwDABP9N8HXdiwBNzItd4Iu2OAAEAAA7zn0ejQiEjc0BnPGAYP+AAIAgAIBgAQAGAQJeTnXrU+iaCEAAAFmNhcgARlAA/xUwMAAQi00Q7FDojwAWg038AP+NTdCL8Oi9AQANi8aLTfRfXiBbZIkNAAAAycMA9kQkBAFWi/EAxwbUMgAQdAcIVuhOAUuLxl7CkAQAxwEBFMPDAAoAuJwsABDo7gwBAFDsdFMz21ZXAIvxiV3kx0XgAvwAIlONTayJXRj86GwAOwBsxkX8SAHoWoEFRayABQKA99gbwCNFsABNShwATVCAEOg2gA7/AHUQi30MV/91ELD/FSwDDODo2woHARvgAxnkUP91CNToKIMViUXojaBFwFdTU4AjdAA6YQAGi00IUAADgAHQCFDoB4Fvxw+vRYAQweACUOiMACSQWYmGMAChi02ALQBFgIlNiMdFgAIogHuJfYRmx0UIjAEAgAKOIACJAF2QiV2UiV2YAIldnIldoIldQKRQi87okoCmORBdEIu2ASGJXQgAfl6JdfA7+4kAXQx+QYt18P8gdQj/dQyAT/8VAigAXjPSD7bIigDUwegQD7bAiQBF7DPAD7bSigDhD7ZN7IrCwQDgCAvB/0UMiQAGg8YEOX0MfEDC/0UIi8fAKQEARfCLRQg7RRAAfKWLReg7w3UABDPA6wOLQARNQj4uAUPEU/4GwQKsWoiAWe2AAkBe6AFBTSDgx0X8A8A06KdDQAVLd8IMAMPAduimFAADAHoIAcF3boAJCcR3uLABdRkLAAAmUYAJQDfHBsEUg2Ww/ADoWUMTw4VexouVjhMfiBPEgRPKCpETUgqkE9AFhxPYgRN7TZITu4AJkBOhVEBiwxi4EDNAAcAMagDogtDBHUZsxwYwwARIowBgQMbGXo8dWUmHHccBgQrpnQAO6AlABQDpACAAuQhBAcAEqf///2jpH6VAJUwABVnDQwXLQAUAVYvsUVFWM/YIOTUEgBh0CGoBaFjpz4EyF4BS4Fr4UeIpaDAJQALzgXrGAFl0ClaLyOgYAAEAAOsCM8BWQGpli8ijzOAJ6EopIAWhIQE7xqVBIOBqAVZWo0EL4GCgThpqwXyIQB/kDRT/dQgciw1hBv91GP8QdRToayBCavD/UaID/xWEIAUtoBFAulBnAoBgAkFYxAF8wAEUagWlAXigAYtN/CCLVfgzwEMMiVEABA+VwF7JwhgEAKHhAYXAdAv/zHQkwFRDBwFYQCcAAs4QxBAgAWUA6LCBEQAEJBAAgwPoxwMCw4sCDUEJM8CFyXQSMFH/FYwACeAKB4OCJcECAMO4BS2ABR56ICgBQIAVYEBqZegG1aAygUCNTmTogMD1//+NjrQgKmJkGnHCAQSgLMGO6HPuZP//okRwNOI+5mIEWgAuQFdgEgVPMeEOAq/kDoAOQwrgbAJBOmOgCtVoDm1gDoDEEWFgAQGuHaCHKSNUZ1MAC6F0MSXBU9jEU+gRYARqARjHhiigC0FNx4YsBSABMiABWF7DuERFoRB8IICD7FSgBVYgjU2g6OugDjPJEDPAUVEAmqCJTWT8UCMR6KskD4EEwFNCnkgPuFhBCTFCCRQwgX0IsyABIAp1R0iLhuSBpo6UIAZQMlHDHOhS4BuADeDoKpCJDeCIDT6GDeDo4mWBDc7oWGwOoB1gYliD7BAiN4B28MBwcAiDZfQguQyJRfgAi0Z0iUX8jUUK8ABIkKF6+AF1Jxj/thgAEEADK0UQyYMR/7YhIv+2ISQgoogM6KtBOs7o6aA1jYBRDJ8MjQwwi45DCgFIDQyJ0eFRi46vgQwAAeEMRCE9ow17pQ0B4Qx2YP92IP8VIpRBZM7ockEDw7hGbAEsYZeD7ByABFegjU3w6GmgATMwEgTwVyBuCIl9/OiCURABjUXYUGowOhAI/xUg'
  2797.     $WaterCtrl &= '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'
  2798.     $WaterCtrl &= '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'
  2799.     $WaterCtrl &= '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'
  2800.     $WaterCtrl &= 'ZXADaZIOeQpE8gFWY/IRnzMAACRSN5MUbg3wBmwSCrcgBAiwBBuQd+hBR3AEAwAIAE3fkAdxM7MDEzQRE2ZvSw8A/w8ADwAPAA8ADwAPAA8ADwD/DwAPAA8ADwAPAA8ADwAPAAcHAIBeARgJME4wLgAyGjbdNvA2EAA3KzdgN3Q3jwA3ojfGN+c4CQA5PjleObs54wA58DkcOmQ6cQA6ijrIOvk6MwA7WTt4O4E7nwA7gDy2PMs81QA87jwbPTQ9YwA98T1oPqo+vAA+zj75Pgs/HQA/SD9aP2w/ewA/gT+VP5o/wAA/1D/eP+o//QvBWUAmwGBbOjBEMABYMGcwbTB4MACLMJEwnzClMACuMLQwvDDCMADQMOAw7zD/MAAcMSsxODFCMQBJMZIxwTEaMgAgMkcykjIwMwCVM+Uz8zMoNABtNKE0/jQKNQASNRg1HjUkNQAqNTA1NjU8NQBCNUg1TjVUNQBaNWA1ZjVsNQByNXg1fjWENQCKNZA1ljWcNQCiNag1rjW0NQC6NcA1xjXMNQDSNdg13jXkNQDqNfA19jX8NQACNgg2DjYUNgAaNiA2JjYsNgAyNjg2PjZENgBKNlA2VjZcNgBiNmg2bjZ0NgB6NoA2hjaMNgCSNpg2njakNgCqNrA2tja8NgDCNsg2zjbUNgDaNuA25jbsNgDyNvg2/jYENwAKNxA3FjccNwAiNyg3Ljc0NwA6N0A3RjdMNwBSN1g3XjdkNwBqN3A3djeFNwCVN6Q3zTfZNwDjN+83KDhQOACPONc4ETkjOQBkOXA5ejmwOQDCOcg5CToWOgAdOiI6TzpXOgBdOmg6dTp9OgCLOpA6lTqaOgClOrI6vDrROgDdOuM6BTsXOwBzO5A7ljucOwCiO6g7rju0OwC6O8A7xjvMOwDSO9g73jvkOwDqO/A79jv8OwACPAg8DjwrPABTPF08cTydPACxPMU82TwGPQAyPUU9WT1tPSyBPfAboEKE8BuoMgCsMrAytDK4MgC8MsAyxDLIMgDMMtAy1DLYMgDcMuAy5DLoMgDsMvAy9DL4MgD8MgAzBDMIMwAMMxAzFDMwMwA0MzgzPDNAMwBEM0gzTDNQMwBUM1gzXDNgMwBkM2gzbDNwMwB0M3gzfDOAMwCEM4gzjDOQMwCUM5gznDOgMwCkM6gzrDOwMwC0M7gzvDPAMwDEM8gzzDPQMwDYM9wz9DMMNAAkNDw0VDRwNAB0NHg0fDSANACENIg0jDSQNACUNJg0nDSgNACkNKg0rDSwNAC0NLg0vDTANADENMg0zDTQNADUNNg03DTgNADkNOg07DTwNAD0NPg0/DQANQAENQg1DDUQNSIU0CUcNSDwJSg1IiwQJjQ1ODAmQDWqRFAmTFAmWFAmeJAlAKg1rDWwNcQ1AtTQJOA1+DUMNgIc8CMwNkw2VDYgYDZ8NoSQIpg2gKA20DbcNuRQN4gMNxgwIDw3RBAgAljQN4A3nDeoNwDEN9A37Df0NwD8Nwg4JDgsOAA0OEA4XDhoOACEOJA4rDi4OBbU4WtAVBjxVDAIMABgMHwwgDCgMDjAMPBDXA8ACgADsAIA/AE='
  2801.     $WaterCtrl = _WinAPI_Base64Decode($WaterCtrl)
  2802.     Local $tSource = DllStructCreate('byte[' & BinaryLen($WaterCtrl) & ']')
  2803.     DllStructSetData($tSource, 1, $WaterCtrl)
  2804.     Local $tDecompress
  2805.     _WinAPI_LZNTDecompress($tSource, $tDecompress, 16896)
  2806.     $tSource = 0
  2807.     Local $bString = Binary(DllStructGetData($tDecompress, 1))
  2808.     If $bSaveBinary Then
  2809.         Local $hFile = FileOpen($sSavePath & "\WaterCtrl.dll", 18)
  2810.         FileWrite($hFile, $bString)
  2811.         FileClose($hFile)
  2812.     EndIf
  2813.     Return  $bString
  2814. EndFunc   ;==>_WaterCtrl
  2815.  
  2816. Func _WinAPI_Base64Decode($sB64String)
  2817.     Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0)
  2818.     If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "")
  2819.     Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]")
  2820.     $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0)
  2821.     If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "")
  2822.     Return DllStructGetData($bBuffer, 1)
  2823. EndFunc   ;==>_WinAPI_Base64Decode
  2824.  
  2825. Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize)
  2826.     $tOutput = DllStructCreate("byte[" & $iBufferSize & "]")
  2827.     If @error Then Return SetError(1, 0, 0)
  2828.     Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0)
  2829.     If @error Then Return SetError(2, 0, 0)
  2830.     If $aRet[0] Then Return SetError(3, $aRet[0], 0)
  2831.     Return $aRet[6]
  2832. EndFunc   ;==>_WinAPI_LZNTDecompress
Add Comment
Please, Sign In to add comment