#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #AutoIt3Wrapper_Icon=C:\ProgramData\PostStampBuilder\Stamp2.ico #AutoIt3Wrapper_Outfile=PostStampBuilder.exe #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_UPX_Parameters=--best --lzma #AutoIt3Wrapper_Res_Description=Postage Stamp Builder #AutoIt3Wrapper_Res_Fileversion=1.0.4 #AutoIt3Wrapper_Res_LegalCopyright=wakillon #AutoIt3Wrapper_Res_Field='Compiled with'|'AutoIt Version 3.3.14.2' #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/so /pe /rm #AutoIt3Wrapper_Run_After=del "%scriptfile%_stripped.au3" #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #Region ;************ Includes ************ #include #Include #Include #include #Include #include #Include #EndRegion ;************ Includes ************ Opt ( 'GUIOnEventMode', 1 ) #Region ------ Global Variables ------------------------------ Global $hGuiMain, $idLabelPreview, $idButtonSave, $idLabelImageName, $idLabelSize, $idButtonChooseColor, $idComboPerforationsCount Global $idLabelOriginalSize, $idLabelOutputSize, $aIdRadioType[3], $idLabelDropTxt, $idSliderRescale, $idLabelScale, $idButtonExit, $idButtonOpen Global $hGuiRef, $hGraphic, $sCurrentFilePath, $iScale, $iSave, $sFileSaveDialog, $aPosBak, $iAdlib, $iOpen, $iChoose, $sFileOpenDialog, $Color Global $hImage, $hBmp_Buffer, $hGfx_Buffer, $hGraphicPreview, $hClonePreview, $SerratedEdgeColor = 0xFFFFFFFF, $aIdLabelColor[6] Global $iHCount, $iVCount, $iHWidth, $iVWidth, $iGuiWidth, $iGuiHeight, $iImageWidth, $iImageHeight, $iLabelPreviewSize = 560, $x, $y, $w, $h, $iTriangleMargin = 10, $iPerforationsType = 0 Global $sInstallDir = @HomeDrive & '\ProgramData\PostStampBuilder' #EndRegion --- Global Variables ------------------------------ #Region ------ Init ------------------------------ AutoItWinSetTitle ( 'P0st.Stamp.Bu1ld3r' ) If _ScriptIsAlreadyRunning() Then Exit _GDIPlus_Startup() Stamp2Ico ( 'Stamp2.ico', $sInstallDir ) Choosecolorgif ( 'choosecolor.gif', $sInstallDir ) Saveaspnggif ( 'saveaspng.gif', $sInstallDir ) Opengif ( 'open.gif', $sInstallDir ) Exitgif ( 'exit.gif', $sInstallDir ) _GuiMain() #EndRegion --- Init ------------------------------ #Region ------ Main Loop ------------------------------ While 1 If $iSave = 1 Then $iSave = 0 $sFileSaveDialog = FileSaveDialog ( 'Save As PNG', @WorkingDir, 'Image Files (*.png)', 2+16, 'Save.png', $hGuiMain ) If Not @error Then If _FileGetExtByFullPath ( $sFileSaveDialog ) <> 'png' Then $sFileSaveDialog &= '.png' _ImageSaveWithTransparency ( $sFileSaveDialog ) If Not @error Then ;~ ShellExecute ( $sFileSaveDialog ) Else MsgBox ( 262144+16, 'Error', 'Sorry !' & @CRLF & 'An Unknow Error occurred !', 4 ) EndIf EndIf EndIf If $iOpen = 1 Then $iOpen = 0 $sFileOpenDialog = FileOpenDialog ( 'Select an Image', '', 'Image Files (*.bmp;*.gif;*.jpg;*.png)', 1, '', $hGuiMain ) If Not @error Then Switch _ImageCheck ( $sFileOpenDialog ) Case 1 If $idLabelDropTxt Then GUICtrlDelete ( $idLabelDropTxt ) $idLabelDropTxt = 0 EndIf $sCurrentFilePath = $sFileOpenDialog _GuiRef() Case 0 MsgBox ( 262144+16, 'Error', 'Unsupported File !', 5 ) Case -1 MsgBox ( 262144+16, 'Error', 'Dimensions File are too small !', 5 ) EndSwitch EndIf EndIf If $iChoose = 1 Then $iChoose =0 _GuiCtrlPicButton_SimulateAction ( $hGuiMain, $idButtonChooseColor ) $Color = _ChooseColor ( 2, 0, 0, $hGuiMain ) If $Color <> -1 Then $SerratedEdgeColor = '0x' & Hex ( BitOR ( 0xFF000000, $Color ), 8 ) _GuiRef() _ImageDraw() EndIf EndIf Sleep ( 250 ) WEnd #EndRegion --- Main Loop ------------------------------ Func _ArrayAddEx ( ByRef $avArray, $vValue ) If Not IsArray ( $avArray ) Then Return SetError ( 1, 0, -1 ) If UBound ( $avArray, 0 ) <> 1 Then Return SetError ( 2, 0, -1 ) Local $iUBound = UBound ( $avArray ) ReDim $avArray[$iUBound + 1] $avArray[$iUBound] = $vValue Return $iUBound EndFunc ;==> _ArrayAddEx() Func _Base64Decode ( $input_string ) ; by trancexx Local $struct = DllStructCreate ( 'int' ) Local $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', 0, 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $a = DllStructCreate ( 'byte[' & DllStructGetData ( $struct, 1 ) & ']' ) $a_Call = DllCall ( 'Crypt32.dll', 'int', 'CryptStringToBinary', 'str', $input_string, 'int', 0, 'int', 1, 'ptr', DllStructGetPtr ( $a ), 'ptr', DllStructGetPtr ( $struct, 1 ), 'ptr', 0, 'ptr', 0 ) If @error Or Not $a_Call[0] Then Return SetError ( 2, 0, '' ) Return DllStructGetData ( $a, 1 ) EndFunc ;==> _Base64Decode() Func _FileGetExtByFullPath ( $sFullPath=@ScriptFullPath ) Local $aFileName = StringSplit ( $sFullPath, '.' ) If Not @error Then Return $aFileName[$aFileName[0]] EndFunc ;==> _FileGetExtByFullPath() Func _FileGetFullNameByFullPath ( $sFullPath ) Local $aFileName = StringSplit ( $sFullPath, '\' ) If Not @error Then Return $aFileName[$aFileName[0]] EndFunc ;==> _FileGetFullNameByFullPath() Func _GuiCtrlPicButton_RestorePos() If Not _IsPressedEx ( '01' ) Then ; wait left mouse button is not pressed. If IsArray ( $aPosBak ) Then GUICtrlSetPos ( $aPosBak[4], $aPosBak[0], $aPosBak[1], $aPosBak[2], $aPosBak[3] ) $aPosBak = 0 EndIf $iAdlib = 0 AdlibUnRegister ( '_GuiCtrlPicButton_RestorePos' ) EndIf EndFunc ;==> _GuiCtrlPicButton_RestorePos() Func _GuiCtrlPicButton_SimulateAction ( $hWnd, $iCtrlId, $iFlag=1 ) If $iAdlib = 1 Then Return Local $aPos = ControlGetPos ( $hWnd, '', $iCtrlId ) If Not @error Then GUICtrlSetPos ( $iCtrlId, $aPos[0]+$iFlag, $aPos[1]+$iFlag, $aPos[2]-2*$iFlag, $aPos[3]-2*$iFlag ) $aPosBak = $aPos _ArrayAddEx ( $aPosBak, $iCtrlId ) AdlibRegister ( '_GuiCtrlPicButton_RestorePos', 150 ) $iAdlib = 1 EndIf $aPos = 0 EndFunc ;==> _GuiCtrlPicButton_SimulateAction() Func _Exit() If $hImage Then _GDIPlus_ImageDispose ( $hImage ) _GDIPlus_GraphicsDispose ( $hGfx_Buffer ) _GDIPlus_BitmapDispose ( $hBmp_Buffer ) _GDIPlus_GraphicsDispose ( $hGraphic ) _GDIPlus_Shutdown() GUIDelete ( $hGuiMain ) Exit EndFunc ;==> _Exit() Func _GuiEvents() Switch @GUI_CtrlId Case $GUI_EVENT_CLOSE _Exit() Case $idButtonExit _GuiCtrlPicButton_SimulateAction ( $hGuiMain, $idButtonExit ) Sleep ( 250 ) _Exit() Case $GUI_EVENT_RESTORE _ImageDraw() If $hClonePreview Then _GDIPlus_GraphicsDrawImageRectRect ( $hGraphicPreview, $hClonePreview, 0, 0, $iGuiWidth, $iGuiHeight, $x, $y, $w, $h ) Case $GUI_EVENT_DROPPED If @GUI_DropId = $idLabelPreview Then Switch _ImageCheck ( @GUI_DRAGFILE ) Case 1 If $idLabelDropTxt Then GUICtrlDelete ( $idLabelDropTxt ) $idLabelDropTxt = 0 EndIf $sCurrentFilePath = @GUI_DRAGFILE _GuiRef() Case 0 MsgBox ( 262144+16, 'Error', 'Unsupported File !', 5 ) Case -1 MsgBox ( 262144+16, 'Error', 'Dimensions File are too small !', 5 ) EndSwitch EndIf Case $idButtonSave _GuiCtrlPicButton_SimulateAction ( $hGuiMain, $idButtonSave ) If $hImage Then $iSave = 1 Sleep ( 250 ) Case $idButtonChooseColor $iChoose = 1 Case $idComboPerforationsCount If $hImage Then GUICtrlSetOnEvent ( $idComboPerforationsCount, '_NoEvents' ) GUICtrlSetState ( $idComboPerforationsCount, $GUI_DISABLE ) _GuiRef() _ImageDraw() Sleep ( 50 ) GUICtrlSetState ( $idComboPerforationsCount, $GUI_ENABLE ) GUICtrlSetOnEvent ( $idComboPerforationsCount, '_GuiEvents' ) ControlFocus ( $hGuiMain, '', $idComboPerforationsCount ) EndIf Case $aIdRadioType[0], $aIdRadioType[1], $aIdRadioType[2] $iPerforationsType = @GUI_CtrlId - $aIdRadioType[0] If $hImage Then _GuiRef() _ImageDraw() EndIf Case $aIdLabelColor[0] To $aIdLabelColor[5] Local $aColor[6] = [0xFFFFFF, 0xFFFF00, 0xFF0000, 0x00FF00, 0x0000FF, 0x000000] $SerratedEdgeColor = '0x' & Hex ( BitOR ( 0xFF000000, $aColor[@GUI_CtrlId - $aIdLabelColor[0]] ), 8 ) _GuiRef() _ImageDraw() Case $idSliderRescale $iScale = GUICtrlRead ( $idSliderRescale )/100 If $hImage Then ControlSetText ( $hGuiMain, '', $idLabelOutputSize, Int ( $iGuiWidth * $iScale ) & 'x' & Int ( $iGuiHeight * $iScale ) ) ControlSetText ( $hGuiMain, '', $idLabelScale, StringFormat ( '%03.2f', $iScale ) ) Case $idButtonOpen _GuiCtrlPicButton_SimulateAction ( $hGuiMain, $idButtonOpen ) $iOpen = 1 Sleep ( 250 ) EndSwitch EndFunc ;==> _GuiEvents() Func _GuiMain() $hGuiMain = GUICreate ( 'PostStampBuilder v1.0.4', 820, 600, -1, -1, -1, $WS_EX_ACCEPTFILES ) GUISetOnEvent ( $GUI_EVENT_CLOSE, '_GuiEvents' ) GUISetOnEvent ( $GUI_EVENT_DROPPED, '_GuiEvents' ) GUISetOnEvent ( $GUI_EVENT_RESTORE, '_GuiEvents' ) GUISetIcon ( $sInstallDir & '\Stamp2.ico' ) GUISetBkColor ( 0x444444 ) ; $idLabelSize = GUICtrlCreateLabel ( 'Preview', 20, 1, $iLabelPreviewSize, 18, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; $idLabelPreview = GUICtrlCreateLabel ( '', 20, 20, $iLabelPreviewSize, $iLabelPreviewSize, 0x01 ) GUICtrlSetState ( -1, $GUI_DROPACCEPTED ) GUICtrlSetBkColor ( -1, 0xABCDEF ) GUICtrlSetColor ( -1, 0xF8D381 ) GUICtrlSetState ( -1, $GUI_DISABLE ) $hGraphicPreview = _GDIPlus_GraphicsCreateFromHWND ( GUICtrlGetHandle ( -1 ) ) ; $idLabelDropTxt = GUICtrlCreateLabel ( 'Drag && Drop an image here.', 20, $iLabelPreviewSize/3, $iLabelPreviewSize, 40, 0x01 ) GUICtrlSetFont ( -1, 14, 800 ) GUICtrlSetBkColor ( -1, 0xABCDEF ) GUICtrlSetState ( -1, $GUI_DISABLE ) ; $idLabelImageName = GUICtrlCreateLabel ( '', 20, 21 +$iLabelPreviewSize, $iLabelPreviewSize, 18, 0x01 ) GUICtrlSetFont ( -1, 10, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; GUICtrlCreateLabel ( 'Original Dimension', 600, 20, 200, 20, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; $idLabelOriginalSize = GUICtrlCreateLabel ( '', 600, 40, 200, 20, BitOR ( $SS_SUNKEN, 0x01 ) ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFF00 ) ; GUICtrlCreateLabel ( 'Output Dimension', 600, 70, 200, 20, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; $idLabelOutputSize = GUICtrlCreateLabel ( '', 600, 90, 200, 20, BitOR ( $SS_SUNKEN, 0x01 ) ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFF00 ) ; GUICtrlCreateLabel ( 'Serrated Edges Color', 600, 130, 200, 20, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) Local $aColor[6] = [0xFFFFFF, 0xFFFF00, 0xFF0000, 0x00FF00, 0x0000FF, 0x000000] For $i = 0 To 5 $aIdLabelColor[$i] = GUICtrlCreateLabel ( '', 600+$i*37, 150, 15, 15, $SS_SUNKEN ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) GUICtrlSetBkColor ( -1, $aColor[$i] ) Next ; $idButtonChooseColor = GUICtrlCreatePic ( $sInstallDir & '\choosecolor.gif', 600, 175, 200, 24 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) ; GUICtrlCreateLabel ( 'Horizontal Perforation Count', 600, 215, 200, 20, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; $idComboPerforationsCount = GUICtrlCreateCombo ( '', 600, 235, 200, 20, $CBS_DROPDOWNLIST, $WS_EX_RIGHT ) GUICtrlSetData ( -1, '10|15|20|25|30', '20' ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) GUICtrlSetFont ( -1, 11, 800 ) ; GUICtrlCreateGroup ( ' Perforations Type ', 600, 280, 200, 130 ) DllCall ( 'UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle ( -1 ), 'wstr', 0, 'wstr', 0 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; Local $aType[3] = ['Rounded', 'Square', 'Triangle'] For $i = 0 To 2 $aIdRadioType[$i] = GUICtrlCreateRadio ( ' ' & $aType[$i], 650, 310+$i*30, 100, 20 ) DllCall ( 'UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle ( -1 ), 'wstr', 0, 'wstr', 0 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) GUICtrlSetFont ( -1, 11, 800 ) If Not $i Then GUICtrlSetState ( -1, $GUI_CHECKED ) GUICtrlSetColor ( -1, 0xFFFFFF ) Next ; GUICtrlCreateLabel ( 'Rescale Image X ', 600, 420, 160, 20, 0x01 ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFFFF ) ; $idSliderRescale = GUICtrlCreateSlider ( 600, 440, 200, 20, BitOR ( 0x0004, 0x0010 ) ) ; $TBS_TOP $TBS_NOTICKS GUICtrlSetLimit ( -1, 2.0*100, 0.1*100 ) GUICtrlSetData ( -1, 1*100 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) GUICtrlSetBkColor ( -1, 0x444444 ) ; $iScale = GUICtrlRead ( $idSliderRescale )/100 $idLabelScale = GUICtrlCreateLabel ( StringFormat ( '%03.2f', $iScale ), 760, 420, 40, 20, $SS_SUNKEN, $WS_EX_RIGHT ) GUICtrlSetFont ( -1, 11, 800 ) GUICtrlSetColor ( -1, 0xFFFF00 ) ; $idButtonSave = GUICtrlCreatePic ( $sInstallDir & '\saveaspng.gif', 600, 476, 200, 24 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) ; $idButtonOpen = GUICtrlCreatePic ( $sInstallDir & '\open.gif', 600, 516, 200, 24 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) ; $idButtonExit = GUICtrlCreatePic ( $sInstallDir & '\Exit.gif', 600, 556, 200, 24 ) GUICtrlSetOnEvent ( -1, '_GuiEvents' ) ; GUISetState ( @SW_SHOW, $hGuiMain ) GUIRegisterMsg ( $WM_PAINT, '_WM_PAINT' ) GUIRegisterMsg ( $WM_HSCROLL, '_WM_HSCROLL' ) EndFunc ;==> _GuiMain() Func _GuiRef() ; this hidden gui is the reference for create the preview and for save Image to PNG. If Not FileExists ( $sCurrentFilePath ) Then Return ControlSetText ( $hGuiMain, '', $idLabelImageName, _FileGetFullNameByFullPath ( $sCurrentFilePath ) ) If $hImage Then _GDIPlus_ImageDispose ( $hImage ) $hImage = _GDIPlus_ImageLoadFromFile ( $sCurrentFilePath ) $iImageWidth = _GDIPlus_ImageGetWidth ( $hImage ) $iImageHeight = _GDIPlus_ImageGetHeight ( $hImage ) ControlSetText ( $hGuiMain, '', $idLabelOriginalSize, $iImageWidth & 'x' & $iImageHeight ) $iHCount = GUICtrlRead ( $idComboPerforationsCount ) ; Horizontal Perforations count. $iVCount = Int ( $iHCount*$iImageHeight/$iImageWidth ) ; Vertical Perforations count. Switch $iPerforationsType Case 0, 1 $iHWidth = $iImageWidth/( $iHCount*1.5 -1.5 ) ; Horizontal Perforations Size $iVWidth = $iImageHeight/( $iVCount*1.5 -1.5 ) ; Vertical Perforations Size $iGuiWidth = Int ( $iImageWidth +2*$iHWidth ) ; gui width for image + Left and right serrated edges $iGuiHeight = Int ( $iImageHeight +2*$iVWidth ) ; gui height for image + top and bottom serrated edges Case 2 $iTriangleMargin = Int ( Sqrt ( $iImageWidth +$iImageHeight )/2 ) ConsoleWrite ( '+->-- [' & StringFormat ( '%03i', @ScriptLineNumber ) & '] $iTriangleMargin : ' & $iTriangleMargin & @Crlf ) $iHWidth = ($iImageWidth +$iTriangleMargin*2)/( $iHCount ) ; Horizontal Perforations Size $iVWidth = ($iImageHeight +$iTriangleMargin*2)/( $iVCount ) ; Vertical Perforations Size $iGuiWidth = Int ( $iImageWidth +$iTriangleMargin*2 +$iHWidth ) ; gui width for image + Left and right serrated edges $iGuiHeight = Int ( $iImageHeight +$iTriangleMargin*2 +$iVWidth ) ; gui height for image + top and bottom serrated edges EndSwitch $iScale = GUICtrlRead ( $idSliderRescale )/100 ControlSetText ( $hGuiMain, '', $idLabelOutputSize, Int ( $iGuiWidth * $iScale ) & 'x' & Int ( $iGuiHeight * $iScale ) ) If $hGuiRef Then GUISwitch ( $hGuiRef ) GUIRegisterMsg ( $WM_PAINT, '' ) _GDIPlus_GraphicsDispose ( $hGfx_Buffer ) _GDIPlus_BitmapDispose ( $hBmp_Buffer ) _GDIPlus_GraphicsDispose ( $hGraphic ) $hGfx_Buffer = 0 $hBmp_Buffer = 0 $hGraphic = 0 GUIDelete ( $hGuiRef ) $hGuiRef = 0 EndIf $hGuiRef = GUICreate ( '', $iGuiWidth, $iGuiHeight, -1, -1, $WS_POPUP, BitOR ( $WS_EX_TOPMOST, $WS_EX_LAYERED ) ) _WinAPI_SetLayeredWindowAttributes ( $hGuiRef, 0xFFABCDEF, 255 ) ; set gui transparency ;~ GUISetState() GUIRegisterMsg ( $WM_PAINT, '_WM_PAINT' ) $hGraphic = _GDIPlus_GraphicsCreateFromHWND ( $hGuiRef ) $hBmp_Buffer = _GDIPlus_BitmapCreateFromGraphics ( $iGuiWidth, $iGuiHeight, $hGraphic ) $hGfx_Buffer = _GDIPlus_ImageGetGraphicsContext ( $hBmp_Buffer ) _ImagePreviewSet() EndFunc ;==> _GuiRef() Func _ImageCheck ( $sFilePath ) Local $hImage = _GDIPlus_ImageLoadFromFile ( $sFilePath ) Local $iImageType = _GDIPlus_ImageGetType ( $hImage ) Local $iImageWidth = _GDIPlus_ImageGetWidth ( $hImage ) Local $iImageHeight = _GDIPlus_ImageGetHeight ( $hImage ) _GDIPlus_ImageDispose ( $hImage ) Switch $iImageType Case $GDIP_IMAGETYPE_UNKNOWN Return 0 Case $GDIP_IMAGETYPE_BITMAP ; BMP, PNG, GIF, JPEG, TIFF, ICO, EXIF If $iImageWidth < 128 Or $iImageHeight < 128 Then Return -1 Return 1 Case $GDIP_IMAGETYPE_METAFILE ; EMF, WMF Return 0 EndSwitch EndFunc ;==> _ImageCheck() Func _ImageDraw() If Not $hGfx_Buffer Then Return If $hImage Then Switch $iPerforationsType Case 2 _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth/2 +$iTriangleMargin, $iVWidth/2 +$iTriangleMargin, $iImageWidth, $iImageHeight ) Case Else _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) EndSwitch EndIf EndFunc ;==> _ImageDraw() Func _ImagePreviewSet() _GDIPlus_GraphicsClear ( $hGfx_Buffer, $SerratedEdgeColor ) ; serrated edges color Switch $iPerforationsType Case 0 _PostStampCreateRoundSerration ( $hImage ) Case 1 _PostStampCreateRectangleSerration ( $hImage ) Case 2 _PostStampCreateTriangleSerration ( $hImage ) EndSwitch If $hClonePreview Then _GDIPlus_ImageDispose ( $hClonePreview ) $hClonePreview = _GDIPlus_BitmapCloneArea ( $hBmp_Buffer, 0, 0, $iGuiWidth, $iGuiHeight, $GDIP_PXF32ARGB ) Local $iRatio, $iMargin = 20 If $iGuiWidth >= $iLabelPreviewSize Or $iGuiHeight >= $iLabelPreviewSize Then If $iGuiWidth >= $iGuiHeight Then $iRatio = $iLabelPreviewSize/$iGuiWidth Else $iRatio = $iLabelPreviewSize/$iGuiHeight EndIf Else $iRatio = 1 $iMargin = 0 EndIf $w = Int ( $iGuiWidth*$iRatio -$iMargin ) $h = Int ( $iGuiHeight*$iRatio -$iMargin ) $x = Int ( ( $iLabelPreviewSize - $w )/2 ) $y = Int ( ( $iLabelPreviewSize - $h )/2 ) ControlSetText ( $hGuiMain, '', $idLabelSize, 'Preview in ' & $w & 'x' & $h ) _GDIPlus_GraphicsClear ( $hGraphicPreview, 0xFFABCDEF ) _GDIPlus_GraphicsDrawImageRectRect ( $hGraphicPreview, $hClonePreview, 0, 0, $iGuiWidth, $iGuiHeight, $x, $y, $w, $h ) EndFunc ;==> _ImagePreviewSet() Func _ImageSaveWithTransparency ( $sPngFilePath ) Local $hClone = _GDIPlus_BitmapCloneArea ( $hBmp_Buffer, 0, 0, $iGuiWidth, $iGuiHeight, $GDIP_PXF32ARGB ) If Not $hClone Then Return SetError ( 1, 0, 0 ) Local $tBitmapData = _GDIPlus_BitmapLockBits ( $hClone, 0, 0, $iGuiWidth, $iGuiHeight, $GDIP_ILMWRITE, $GDIP_PXF32ARGB ) Local $tBuffer = DllStructCreate ( 'byte[' & $iGuiHeight * $iGuiWidth * 4 & ']', DllStructGetData ( $tBitmapData, 'Scan0' ) ) Local $Data = DllStructGetData ( $tBuffer, 1 ) ;~ ConsoleWrite ( 'StringLen ( $Data ) : ' & StringLen ( $Data ) & @Crlf ) Local $hSplash If StringLen ( $Data ) > 10^7 Then ; With High dimensions, SplashText is displayed for avoid to see the main gui not responding... $hSplash = SplashTextOn ( 'PostStampBuilder', @CRLF & 'Please Wait' & @CRLF & 'While Saving Image' & @CRLF & 'to PNG...', 500, 300, -1, -1, 0, 'Comic Sans MS', 32, 800 ) GUISetState ( @SW_HIDE, $hGuiMain ) EndIf ;~ Local $hTimerInit = TimerInit() Local $sSRER = StringRegExpReplace ( StringTrimLeft ( $Data, 2 ), '(.{8})', '\1 ' ) ;~ ConsoleWrite ( '!-->-- [' & @ScriptLineNumber & '] TimerDiff StringRegExpReplace : ' & TimerDiff ( $hTimerInit ) & @Crlf ) Sleep ( 250 ) ;~ $hTimerInit = TimerInit() Local $SRER = StringRegExpReplace ( $sSRER, '(EFCDABFF)', 'EFCDAB00' ) Sleep ( 250 ) DllStructSetData ( $tBuffer, 1, '0x' & StringStripWS ( $SRER, 8 ) ) ;~ ConsoleWrite ( '!-->-- [' & @ScriptLineNumber & '] TimerDiff DllStructSetData : ' & TimerDiff ( $hTimerInit ) & @Crlf ) $sSRER = 0 _GDIPlus_BitmapUnlockBits ( $hClone, $tBitmapData ) $tBuffer = 0 $tBitmapData = 0 $iScale = GUICtrlRead ( $idSliderRescale )/100 Local $hBitmap_Scaled = _GDIPlus_ImageScale ( $hClone, $iScale, $iScale ) _GDIPlus_ImageDispose ( $hClone ) If FileExists ( $sPngFilePath ) Then FileDelete ( $sPngFilePath ) _GDIPlus_ImageSaveToFileEx ( $hBitmap_Scaled, $sPngFilePath, _GDIPlus_EncodersGetCLSID ( 'PNG' ) ) ; do not use gif! _GDIPlus_BitmapDispose ( $hBitmap_Scaled ) _WinAPI_EmptyWorkingSet() If $hSplash Then SplashOff() GUISetState ( @SW_SHOW, $hGuiMain ) EndIf _ImagePreviewSet() Return SetError ( @error, 0, FileExists ( $sPngFilePath ) ) EndFunc ;==> _ImageSaveWithTransparency() Func _IsPressedEx ( $sHexKey ) Local $aRet = DllCall ( 'user32.dll', 'short', 'GetAsyncKeyState', 'int', '0x' & $sHexKey ) If @error Then Return SetError ( @error, @extended, False ) Return BitAND ( $aRet[0], 0x8000 ) <> 0 EndFunc ;==> _IsPressedEx() Func _LzntDecompress ( $bBinary ); by trancexx $bBinary = Binary ( $bBinary ) Local $tInput = DllStructCreate ( 'byte[' & BinaryLen ( $bBinary ) & ']' ) DllStructSetData ( $tInput, 1, $bBinary ) Local $tBuffer = DllStructCreate ( 'byte[' & 16*DllStructGetSize ( $tInput ) & ']' ) Local $a_Call = DllCall ( 'ntdll.dll', 'int', 'RtlDecompressBuffer', 'ushort', 2, 'ptr', DllStructGetPtr ( $tBuffer ), 'dword', DllStructGetSize ( $tBuffer ), 'ptr', DllStructGetPtr ( $tInput ), 'dword', DllStructGetSize ( $tInput ), 'dword*', 0 ) If @error Or $a_Call[0] Then Return SetError ( 1, 0, '' ) Local $tOutput = DllStructCreate ( 'byte[' & $a_Call[6] & ']', DllStructGetPtr ( $tBuffer ) ) Return SetError ( 0, 0, DllStructGetData ( $tOutput, 1 ) ) EndFunc ;==> _LzntDecompress() Func _NoEvents() ; EndFunc ;==> _NoEvents() Func _PostStampCreateRectangleSerration ( $hImage ) Local $hBrush = _GDIPlus_BrushCreateSolid ( 0xFFABCDEF ) Local $hPath = _GDIPlus_PathCreate() For $i = 0 To $iHCount -1 ; top & bottom _GDIPlus_PathAddRectangle ( $hPath, $iHWidth*( 1.5+3*$i )/2, -$iHWidth/2, $iHWidth/2, $iHWidth ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_PathAddRectangle ( $hPath, $iHWidth*( 1.5+3*$i )/2, $iGuiHeight -$iHWidth/2, $iHWidth/2, $iHWidth ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next For $i = 0 To $iVCount -1 ; Left & right _GDIPlus_PathAddRectangle ( $hPath, -$iVWidth/2, $iVWidth*( 1.5+3*$i )/2, $iVWidth, $iVWidth/2 ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_PathAddRectangle ( $hPath, $iGuiWidth -$iVWidth/2, $iVWidth*( 1.5+3*$i )/2, $iVWidth, $iVWidth/2 ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_GraphicsDrawImage ( $hGraphic, $hBmp_Buffer, 0, 0 ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) EndFunc ;==> _PostStampCreateRectangleSerration() Func _PostStampCreateRoundSerration ( $hImage ) Local $hBrush = _GDIPlus_BrushCreateSolid ( 0xFFABCDEF ) Local $hPath = _GDIPlus_PathCreate() For $i = 0 To $iHCount -1 ; top & bottom _GDIPlus_PathAddArc ( $hPath, $iHWidth*( 1+3*$i )/2, -$iHWidth/2, $iHWidth, $iHWidth, 0, 180 ) ; _GDIPlus_PathAddArc or _GDIPlus_PathAddPie _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_PathAddArc ( $hPath, $iHWidth*( 1+3*$i )/2, $iGuiHeight -$iHWidth/2, $iHWidth, $iHWidth, 180, 180 ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next For $i = 0 To $iVCount -1 ; Left & right _GDIPlus_PathAddArc ( $hPath, -$iVWidth/2, $iVWidth*( 1+3*$i )/2, $iVWidth, $iVWidth, 270, 180 ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_PathAddArc ( $hPath, $iGuiWidth -$iVWidth/2, $iVWidth*( 1+3*$i )/2, $iVWidth, $iVWidth, 90, 180 ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_GraphicsDrawImage ( $hGraphic, $hBmp_Buffer, 0, 0 ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) EndFunc ;==> _PostStampCreateRoundSerration() Func _PostStampCreateTriangleSerration ( $hImage ) Local $hBrush = _GDIPlus_BrushCreateSolid ( 0xFFABCDEF ) Local $hPath = _GDIPlus_PathCreate() Local $aPoints[5][2] $aPoints[0][0] = 4 For $i = 0 To $iHCount +1 ; top & bottom $aPoints[1][0] = $iHWidth*$i $aPoints[1][1] = -$iHWidth/2 $aPoints[2][0] = $iHWidth*$i -$iHWidth/2 $aPoints[2][1] = 0 $aPoints[3][0] = $iHWidth*$i $aPoints[3][1] = $iHWidth/2 $aPoints[4][0] = $iHWidth*$i +$iHWidth/2 $aPoints[4][1] = 0 _GDIPlus_PathAddPolygon ( $hPath, $aPoints ) _GDIPlus_PathCloseFigure ( $hPath ) $aPoints[1][1] += $iGuiHeight $aPoints[2][1] += $iGuiHeight $aPoints[3][1] += $iGuiHeight $aPoints[4][1] += $iGuiHeight _GDIPlus_PathAddPolygon ( $hPath, $aPoints ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next For $i = 0 To $iVCount +1 ; Left & right $aPoints[1][0] = 0 $aPoints[1][1] = $iVWidth*$i -$iVWidth/2 $aPoints[2][0] = -$iVWidth/2 $aPoints[2][1] = $iVWidth*$i $aPoints[3][0] = 0 $aPoints[3][1] = $iVWidth*$i +$iVWidth/2 $aPoints[4][0] = $iVWidth/2 $aPoints[4][1] = $iVWidth*$i _GDIPlus_PathAddPolygon ( $hPath, $aPoints ) _GDIPlus_PathCloseFigure ( $hPath ) $aPoints[1][0] += $iGuiWidth $aPoints[2][0] += $iGuiWidth $aPoints[3][0] += $iGuiWidth $aPoints[4][0] += $iGuiWidth _GDIPlus_PathAddPolygon ( $hPath, $aPoints ) _GDIPlus_PathCloseFigure ( $hPath ) _GDIPlus_GraphicsFillPath ( $hGfx_Buffer, $hPath, $hBrush ) Next _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth/2 +$iTriangleMargin, $iVWidth/2 +$iTriangleMargin, $iImageWidth, $iImageHeight ) _GDIPlus_GraphicsDrawImage ( $hGraphic, $hBmp_Buffer, 0, 0 ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) EndFunc ;==> _PostStampCreateTriangleSerration() Func _ScriptIsAlreadyRunning() Local $aWinList = WinList ( AutoItWinGetTitle() ) If Not @error Then Return UBound ( $aWinList ) -1 > 1 EndFunc ;==> _ScriptIsAlreadyRunning() Func _WM_HSCROLL ( $hWnd, $iMsg, $wParam, $lParam ) #forceref $hWnd, $iMsg, $wParam Switch $lParam Case GUICtrlGetHandle ( $idSliderRescale ) $iScale = GUICtrlRead ( $idSliderRescale )/100 ControlSetText ( $hGuiMain, '', $idLabelScale, StringFormat ( '%03.2f', $iScale ) ) If $hImage Then ControlSetText ( $hGuiMain, '', $idLabelOutputSize, Int ( $iGuiWidth * $iScale ) & 'x' & Int ( $iGuiHeight * $iScale ) ) EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==> _WM_HSCROLL() Func _WM_PAINT ( $hWnd, $iMsg, $wParam, $lParam ) #forceref $hWnd, $iMsg, $wParam, $lParam Switch $hWnd Case $hGuiMain _ImageDraw() If $hClonePreview Then _GDIPlus_GraphicsDrawImageRectRect ( $hGraphicPreview, $hClonePreview, 0, 0, $iGuiWidth, $iGuiHeight, $x, $y, $w, $h ) EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==> _WM_PAINT() Func Choosecolorgif ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath ) If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\' Local $sFilePath = $sOutputDirPath & $sFileName If FileExists ( $sFilePath ) Then If $iOverWrite = 1 Then If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin ) Else Return SetError ( 0, 0, $sFileBin ) EndIf EndIf Local $hFile = FileOpen ( $sFilePath, 16+2 ) If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin ) FileWrite ( $hFile, $sFileBin ) FileClose ( $hFile ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Choosecolorgif() Func Exitgif ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = 'R0lGODlhyAAYAPYAAEREREVFRUdHR0pKSk5OTVVUU1xbWWNiXmtpZXJwanl2cH17c4SAd4aCd4aCeIeDeYeEeoeFfYiGgYeGgoeGg4eGhIiHhIuKhZCOh5aSipmVjJmWjJqWi5uXjJyYjZ+bkaGdkqOflKSglaWhlqekm6uonq+roLCtpLOwp7azqre0rLm1qrq2q7+8scG+tcO/tMbCt8rGvMzIvs3Jvs3Jv8/LwtHNxNLPxtPQx9bSyNbTyNfTyNzYzd/c0+Dd0+Hd0+Lf1ufk2uvn3Ovn3ezo3+7q4vHu5vPv5/Tx5/Tx5vXx5/by6ff06vj16/r27Pv47f768P778f778v789f789v79+P/+/P/++wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GiJDcmVhdGVkIHdpdGggQ2hpbXBseS5jb20iACH5BAkAAFgALAAAAADIABgAAAf/gACCAQYKEA+IiYqLjI2Oj5CRkpOUlZaXmJUQCwYCgp8DCx89TFamp6ipqqusra6vsLGys7S1trNOPSEMA6ARMlW3wsPExcbHyK82Eb0BCzFXydLTtRbW1NjSNgwCBh9V0dnirxXl5uazFZ+n6OPusFcgBgs8VeBX+Pn6+/z9/v8AAwJU96kgAIH4CAKwkvATwocQI0rkV6XHAghM7E3cyJGjQoMLH65rKIhhx5MoEVZpcoiKS3swY8qcSbOmzZs4cypclaJcC5gsyqGwV86FKXOfXFTIybSp06c2XSKaQhWq1atYYVJwOPPJAUEYqhyx8BUAhSpbBaEFqTar27c4/6lOpUq3rt27ePPq3cu3L9UJSScIrsuDAAABRVowCACgAJIqgAVdmcL2oN/LmDNrrotIiufPoEOLHk26tOnTqD1LqAyaBFgMZWlUkbJarWcXn2Km3s27t2/QiKIIH068uPHjyJMrX85ceITKVYZDSXA4g6ewU6I8V+s8d/Pv4MOLPx58vPnz6LXnlikdRAEAhg0wya6ee30A0dPr388cUZL/AAYo4IAEFmjggQgm+B8DnzxRIAsMvNdLAUYosWCDFwrioIIcdujhhwMiIsSIJJZo4okopqjiiiy2OOICnyyB4g2cHFYCYwwM8WKMIzIoiIwuBinkkESeiMgPSCap5P+STDbp5JNQRiklkgp8ooICWCqAJA8OICAIA0SUpQKVnxiBZAeeAECCllO26eabcC6JyA501mnnnXjmqeeefPbpJ53UVbaDBgn0IsANQGzgSQE47BAoAETQSYMBBv1p6aWYZnonIjDM4OmnoIYq6qiklmrqqah6WhkAQcxQJQALBGHDDNstUMMMn7TqaQsK9CKIrqkGK+ywxM4QwwMKnPDCssw26+yz0EYr7bTUVsusD9hmm+2yOWCrA7M3eLvstszCoEMP5Fqr7rrstvvCCQoYcMEK9NZr77345qvvvvz26++/AAcs8MAEF4wvBgY444EJDDfs8MMQRyzxxBRXbPFnxRhnrPHGHHfs8AcLeDIAAxmIMMLJKKes8sost+zyyzDHLPPMNNds8804j6ABL6BclAEHHQQt9NBEF2300UgnrfTSTDft9NNQR+00Bxls4usnhCjQQCZcd+3112CHLTYjDcSbJgCBAAA7' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath ) If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\' Local $sFilePath = $sOutputDirPath & $sFileName If FileExists ( $sFilePath ) Then If $iOverWrite = 1 Then If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin ) Else Return SetError ( 0, 0, $sFileBin ) EndIf EndIf Local $hFile = FileOpen ( $sFilePath, 16+2 ) If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin ) FileWrite ( $hFile, $sFileBin ) FileClose ( $hFile ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Exitgif() Func Opengif ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath ) If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\' Local $sFilePath = $sOutputDirPath & $sFileName If FileExists ( $sFilePath ) Then If $iOverWrite = 1 Then If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin ) Else Return SetError ( 0, 0, $sFileBin ) EndIf EndIf Local $hFile = FileOpen ( $sFilePath, 16+2 ) If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin ) FileWrite ( $hFile, $sFileBin ) FileClose ( $hFile ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Opengif() Func Saveaspnggif ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath ) If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\' Local $sFilePath = $sOutputDirPath & $sFileName If FileExists ( $sFilePath ) Then If $iOverWrite = 1 Then If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin ) Else Return SetError ( 0, 0, $sFileBin ) EndIf EndIf Local $hFile = FileOpen ( $sFilePath, 16+2 ) If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin ) FileWrite ( $hFile, $sFileBin ) FileClose ( $hFile ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Saveaspnggif() Func Stamp2Ico ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= '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' $sFileBin = Binary ( _Base64Decode ( $sFileBin ) ) $sFileBin = Binary ( _LzntDecompress ( $sFileBin ) ) If Not FileExists ( $sOutputDirPath ) Then DirCreate ( $sOutputDirPath ) If StringRight ( $sOutputDirPath, 1 ) <> '\' Then $sOutputDirPath &= '\' Local $sFilePath = $sOutputDirPath & $sFileName If FileExists ( $sFilePath ) Then If $iOverWrite = 1 Then If Not Filedelete ( $sFilePath ) Then Return SetError ( 2, 0, $sFileBin ) Else Return SetError ( 0, 0, $sFileBin ) EndIf EndIf Local $hFile = FileOpen ( $sFilePath, 16+2 ) If $hFile = -1 Then Return SetError ( 3, 0, $sFileBin ) FileWrite ( $hFile, $sFileBin ) FileClose ( $hFile ) Return SetError ( 0, 0, $sFileBin ) EndFunc ;==> Stamp2Ico()