Popular Post wakillon Posted November 21, 2015 Popular Post Share Posted November 21, 2015 (edited) Create Postage Stamp from any images.Transparency is preserved around serrated edges for permit to paste stamp.Downloads are available in the download section Hope you like it ! Edit : The glue is not supplied with the stamp! Edited November 21, 2015 by wakillon TheSaint, mLipok, Danyfirex and 3 others 6 AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
argumentum Posted November 21, 2015 Share Posted November 21, 2015 (edited) Edited November 26, 2015 by argumentum Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting. Link to comment Share on other sites More sharing options...
wakillon Posted November 21, 2015 Author Share Posted November 21, 2015 Glad you like it !Thanks. argumentum 1 AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted November 21, 2015 Share Posted November 21, 2015 (edited) The save process takes too long.I modified your script a little bit:expandcollapse popup#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 <WindowsConstants.au3> #Include <StaticConstants.au3> #Include <ComboConstants.au3> #include <GUIConstantsEx.au3> #Include <WinAPIProc.au3> #include <GDIPlus.au3> #Include <Misc.au3> #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 ) _Fluidwatercolorpaperjpg ( 'paper.jpg', $sInstallDir ) Global $hImg = _GDIPlus_ImageLoadFromFile( $sInstallDir & "\paper.jpg") Global $hTexture_Paper = _GDIPlus_TextureCreate($hImg) _GDIPlus_ImageDispose($hImg) _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_BrushDispose ( $hTexture_Paper ) _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() Sleep( 500 ) 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 Const $hBmp = _GDIPlus_BitmapCreateFromScan0( $iGuiWidth, $iGuiHeight ) Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext( $hBmp ) ;~ _GDIPlus_GraphicsClear( $hCtxt, $SerratedEdgeColor ) _GDIPlus_GraphicsFillRect( $hCtxt, 0, 0, $iGuiWidth, $iGuiHeight, $hTexture_Paper ) 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 ( $hCtxt, $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 ( $hCtxt, $hPath, $hBrush ) Next Local Const $hIA = _GDIPlus_ImageAttributesCreate() Local $aRemapTable[2][2] $aRemapTable[0][0] = 1 $aRemapTable[1][0] = 0xFFABCDEF $aRemapTable[1][1] = 0x00000000 _GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemapTable) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hBmp, 0, 0, $iGuiWidth, $iGuiHeight, 0, 0, $iGuiWidth, $iGuiHeight, $hIA ) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) _GDIPlus_ImageAttributesDispose( $hIA ) _GDIPlus_GraphicsDispose( $hCtxt ) _GDIPlus_BitmapDispose( $hBmp ) EndFunc ;==> _PostStampCreateRectangleSerration() Func _PostStampCreateRoundSerration ( $hImage ) Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0( $iGuiWidth, $iGuiHeight ) Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext( $hBmp ) ;~ _GDIPlus_GraphicsClear( $hCtxt, $SerratedEdgeColor ) _GDIPlus_GraphicsFillRect( $hCtxt, 0, 0, $iGuiWidth, $iGuiHeight, $hTexture_Paper ) 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 ( $hCtxt, $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 ( $hCtxt, $hPath, $hBrush ) Next Local Const $hIA = _GDIPlus_ImageAttributesCreate() Local $aRemapTable[2][2] $aRemapTable[0][0] = 1 $aRemapTable[1][0] = 0xFFABCDEF $aRemapTable[1][1] = 0x00000000 _GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemapTable) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hBmp, 0, 0, $iGuiWidth, $iGuiHeight, 0, 0, $iGuiWidth, $iGuiHeight, $hIA ) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) _GDIPlus_ImageAttributesDispose( $hIA ) _GDIPlus_GraphicsDispose( $hCtxt ) _GDIPlus_BitmapDispose( $hBmp ) EndFunc ;==> _PostStampCreateRoundSerration() Func _PostStampCreateTriangleSerration ( $hImage ) Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0( $iGuiWidth, $iGuiHeight ) Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext( $hBmp ) ;~ _GDIPlus_GraphicsClear( $hCtxt, $SerratedEdgeColor ) _GDIPlus_GraphicsFillRect( $hCtxt, 0, 0, $iGuiWidth, $iGuiHeight, $hTexture_Paper ) 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 ( $hCtxt, $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 ( $hCtxt, $hPath, $hBrush ) Next Local Const $hIA = _GDIPlus_ImageAttributesCreate() Local $aRemapTable[2][2] $aRemapTable[0][0] = 1 $aRemapTable[1][0] = 0xFFABCDEF $aRemapTable[1][1] = 0x00000000 _GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemapTable) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hBmp, 0, 0, $iGuiWidth, $iGuiHeight, 0, 0, $iGuiWidth, $iGuiHeight, $hIA ) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) _GDIPlus_ImageAttributesDispose( $hIA ) _GDIPlus_GraphicsDispose( $hCtxt ) _GDIPlus_BitmapDispose( $hBmp ) EndFunc ;==> _PostStampCreateTriangleSerration() Func _GDIPlus_ImageAttributesSetRemapTable($hImageAttributes, $iColorAdjustType = 0, $fEnable = False, $aColorMap = 0) Local $iI, $iCount, $tColorMap, $aResult If IsArray($aColorMap) And UBound($aColorMap) > 1 And UBound($aColorMap, 2) Then $iCount = $aColorMap[0][0] $tColorMap = DllStructCreate("uint ColorMap[" & $iCount * 2 & "]") For $iI = 1 To $iCount $tColorMap.ColorMap((2 * $iI - 1)) = $aColorMap[$iI][0] $tColorMap.ColorMap((2 * $iI)) = $aColorMap[$iI][1] Next $aResult = DllCall($__g_hGDIPDll, "int", "GdipSetImageAttributesRemapTable", "handle", $hImageAttributes, "int", $iColorAdjustType, "int", $fEnable, "int", $iCount, "struct*", $tColorMap) If @error Then Return SetError(@error, @extended, False) If $aResult[0] Then Return SetError(10, $aResult[0], False) Return True EndIf Return SetError(11, 0, False) EndFunc ;==>_GDIPlus_ImageAttributesSetRemapTable 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() Func _Fluidwatercolorpaperjpg ( $sFileName, $sOutputDirPath, $iOverWrite=0 ) ; Code Generated by BinaryToAu3Kompressor. Local $sFileBin = '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= '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' $sFileBin &= 'epgNex2aJ3K2vXjoVL2ifM64Fxa8l0J2rIp88CSKEcq8NZgd/hgXX8V1Kwr6kemAPbROFil+lf4/1wMHeTUqWr1iT5TgZtVYvOnl+kYFFQJ7aHqYA17h9rXxAkwIbFj/ALRB0R6/LAqtq1mlVXzd8DJW9VtUtG5MR8cCtYnc8NP1wMlUdV9cDnNO2ta2q9zcr1j0MAO9XufZub1sWH1hMArRWLUSdkYD54FfhOc6nHdln0cDFylp4qv+OpgUd42GF1OQkHngDXuKpasJ4S4FFe4k/XUfkYEfmZa07VjWFv7ZfEWZwKL3NFLT46J8t8AtbSbotfD/AEYGOG5o26sHzdcAOR7a0T61fg7YFrSQtFbm236YGaS/y/r64DwrRltr5u+BgYkdvB0wAtW3ts8jwTT6YGr26luU2jfixHwwM9w141ta3y/XAlvah+WxYNrG8ekYFadwkbHkdfjgIARapE7Ov64BC7yPoIecaYHO9e7VEizs20JPQFwOgXJRLcvLQ/154BMVCxysf8Y+OAXNRW3bOibz4aYA9rl/9l7b+2LPz0wKjgaPtOvj6zgS3R5Vr5OoT8XAOXcLaUvarujVj98BgvaLVsL1wHjepFVt4y7RgXyanJ1/4muBJY7otSamiP7zgaGksxXqPT0wNVVYlqGiPTAptHVKm8H64BuTV+JGuBpI1nXzwMVKHtsQdN8AIXQLeMMRgNkrDYbR1P2wHSyXolXzMAa1uRcrcd/9GBPctTSnE7ifaKaPkuBNPyUVsLV3l0+GA371aa72/wAT+uCIr3DuatmnjpD8IwG5xdLdxmJt1+WBVeE6cUTViNcDKtitrCGwV/fAYp21+95O+/F8p2wMlm3teX/y0PmYGtW1mYq3OvX0wErZ+5g60dl8cAXthHGsm2A2L9waaUq+FumBuNaNa2vppB4+BgZ7vZ7duOhZ6T4YA82VONX+Wo4Ec+DPb7VrhuVrv6K64Gp/6OVXn2bdkf8AKIflgXY79q9FT2yaHxwJpz7T7rcuW4oQ+XjgP5yNF7quvHWDzdDAopY1rFq23l/cMDQVZq2nqOsfDA17V6r59IwNyrU5cm//AMdSPPAoqWOVQl2tBMYGKlt+Wnjp8sCbHAbWbNfB2+u2BElZKoVSY3Y66YFhQr+S0Vr/AKjAmbPu4lq9JYtgHvCILJsLr9cDV7knvpakOtd35mB1eFgI508MCCvasykX66sGAoUsTVs7Fp2wEQtHumejOBekRDp44HNJZrJ0XwwF7fbX3WB+U4ErShNROgVJXAL9/uUg4Wvy6/7GBitV24WdY3h88Bt250dw1vMfPAK9qjYtxLWSC+oxgdOPE3e5G06/UwMOqsVt1hmf0wDjWXjZbddZXAy3rpWrZr6E/PAeXcjfjb0HXAnhU98pZ+5lPpgC1Rszav0wNXhY9i1rXw/XAsLPTR0lX54E27PbUDlR8asJga019nbuc+gwsfHAaqwWHk7TMfTAkA5cqATv44GKNvd4bUbbebvgVCSor1Jn5YEg8uQNA00Yn1wHlYqe5Trrr88B0ZW0DvP7YEV/88X5q+B7mI9JjAta00DXoTgTytPFn/XWcCSvb7WlRrzZ01/fA6cCZNZwJbNIqNav+PTAHQ13X7iH5DgUdrtkNvfY2s7/AEwNft8bFq/cbLt8sACNUH10MAtYSLVqdNQT6YGBtoNa2NiuseuAv4anG7VtGzouBq9yiQBx/jMYDbRHSr5OjgT7nWzWobhoPxwF7pTYLPhOsYGLnc3ON4+3dTrgTc7jWKwU6W66eMzgatqzqr3E6jCfDTA6VSwcpI/jG2BqpoDIeJEYE2uNgq77ka4FRKS6PXAwRrXiQ/yGcA4qSUqjouo/tgD2aNJ7j+Sp9tbxBG2BOkhSsJ1baB5zgWc+JxtW9ujJp6BgHHvTP5AHeYa+kYHJnsMBS1V+3mgfrgdY7fchQtwZ0T2+uBfKpVsaV8f7YA9yASLcvt1jfA5cW+/tTTfUwKOyRxsyaRaWfiYFUe0DWo9pNYH9MCOF2/Kpaleupr8MC+KaNGx0W2mBRYq6nGNDr88CdVeXKvjY2+D44HN/81b2rZ71krt7tX1euBfc7vb7UTds7FKErgPIschOLuNZT4mAR1qFa9U3+uBqFqkVs2J05urgVxtrFSvjrpgHG0nKxZdhwNZrpXTn/jMfFDAY7loixx2QIcDfid+VgOk4E2pwJh7tXov9cCeNN6RWr131wLrH28ptsngb4DFtQqabM6uBqthm8Rr1lwKlt9q6mnhgc2vcKwt7y+RHxIwL/HzrHceZ4E4EHb7XaglbaxLLD0HAS1x4ME7Syx8DApG38f8A8p1wJTgkaWOnjgPUs6+Af61wGuisxO1YiMAbNV0328F9cBm+7WPBEwDhP3sxsoSfHAEu6Vho71ZH5mAlWrys1eh0firgDDoUlOun64BJCtCqO3Ij1wC/cK8ayzbVCZ+mBRxNEA6LrvgYoV0l8eO5gV7uPtZTYwIPy7oQ7Bpp8cCrVEm0Vs7Dt+2BPGldgXxmHAxYr9sa9DV0wEty3Ws7LGBXKviab6a4AuqVYH4fHAmte54l6dHrgF7Uoyz3bH8RNH0/rgRTuF2YsPQvYZ9IScDozHsrwesJHxTAeNrfdQXxI/XA3trNj3L4R8sCVn3Xrr4cunjgVy5VCton0fpgQ8i027Tep1k+hgLa0H46cLPRTAK9ywv5Ksu2sfLALHb7rJW1odZH6TgdDm8egeSJ8sCxJhJPHAmwVJFGdfj6YANp1qyax5ergUg7qr5bYGLBKswRKa/pgQ35rVOdDyj64GXt09vcAk2mTAgrRrBTiV20IfTAs7FL+/jNk+5WP2wNXtVoKVrPWPbp5mANqj+PtH4b760mtv0wJ43L/kQl3rZJHywNVaqFUFm1jXfA6MD/ABa7QGuA86kzFU/TzwNukAUfPV+GAWLU9xEdWHTAkt3Fht6SIOBZH8qlR03ZcDm9p5NyU2Ss6euBvwFvf2m3aeob/JwNWnc7LJz7lbae2Dj5q4C271Qgt3E31Kn98Dfy5CUttfX6QumAvc7SwX52NOI4DNjbWvhvgUcYn7V8euAIU1K8p8cCS/blhr22ZddfrgU1ubXXr0/tgatI1tSs+JP1wGa10Iq28oPjGBM9wSGgPXpgK3g4w+MaTgZhs1Y10UdTAxFAOUVPFl+eBuNkarNX+WBNu1axPKQ6V0n5OBdSta6ok+kHn6YE/movCjW3V1lj0wJ4vcOVb2rertb2npGA/i7izdrbw01+GAV5UYffOh03wOnGIBR6E6fXAydH3Tv4YEn46EUjV2WSesYFJos8TrIYHNb9zSizG+kYFRa1YvYs1dzT9ZwK5KcBBCdf16YEtO4e7nVmN6nE9OuBRxCQK9V0j54ByLTFq2egaxgczu0LFbVW3iGBU1Rh5dR2+TgHOrbS7Yd6w74C8NrWhnSsanzwG1pqV2s7Rq4AK21Q8Y8cCondl85IwJfyGyM9Ws4G5dwKsvih/fAC5d9xE6awSYCdrt3146vhIfGMBO326/wrV3IP3wN+Tt01XjXZ6a4CrYntvIdjfAl/89bW/JaoXjXXAeFNOdJTZ3wIbFbR2xry3rH+owFvblBIfy0J+HjgbjYP+src6zv8fDApr2bgLE6hy/04FCcdIY+WBE2dZUduLNTAxZb8IiOrI64FRanhpPEN354Bz7jE14nUX3GBjkK8Z8zr9cCzUi1depgRYqMnL4MnxwJ0YraXXaJT5YG7lrFn7e3TpZOWv6YB+PvMWb+cGmnxwKr3FbVaWqH22K/d5kYGtaofkm1nwGJfiwYGLW++1EqEw7mAPe7dyKvFdiEcBqVrUJVjWMC05QGk/wAtJcDcE11jqeOBNSba2Tj/ABd8C+QQzxq9E3wJ5TWQ41NuRrga1KW3gazx12+GBzO3Sjbm8qX6dPpgUfjsjW5a1X21V0+GBZ+RXlBVNt8DnxqHvIj+YTPznAoO0PHjx6VdsAmJ/Gj42Yj5mARf' $sFileBin &= 'WXR29sn0ZwN269wPupc6QcfhrgXxk99ajXoa/HywJfYza6V36BHrgH5pB7PHudu3g6/DpgdOBYZ9w9HA5921e0QrUtoW3j4YF1YNU23jWcBCjEOr1wFq/wAY328cAO5qnWvQJ1wCfa2a8PF1MCTujpGlv5HXAbVIkouvu6OBvbYTt243OsanlDgNee3cZT5OBc234k/68MDja9zpKMasT9MBraxvYDzZ1+EYCKQ1oPL+R0MDHd5PFGj05dcCioe4EXcNvlgR9rJVld66x64FXq2DX3H8ZnAie86H/XZ6uomBuPLpSz4OA1Pxv/1lV3QwFvdEKWfCdD13nAituft7s1uHQQPjgWzWoV92mk23+OBNe1eHdTq6T5SYFHPw98bDofGMBe2KTOmx/tgaLVZGaxt/owI9h7xsPXfp44FVu39+unQNPngPPt2eL7h1lMAaj/8AVYPHVcC/fV2q16774EIXdQtG5rrgRzK6U7TQN3Yn4YFA2htc42/jEnzwB7VR0oX7fUlPppgdC1ahBtpxh/vgCnc+yJr0dEwIe13m2nc41jWnEdPXAm/btXjHG9jZtWU+AYFF7ByuVI3QQ+WBXOf/AK7Vqb6GxgJKMWHo+WBNNNB/JYieW/zwLYXd10wK91Y1k+vlgQsTNUr/AJP9MAh3taupEGi4BxKxK1HrOv8AtgFbcda2bD0IK/DABr3NJ7lTedA+pgXHbRpVsJq+LgT2ztk+2zXq21r9dcDW7x20Ht2vWzox+2AlO3b3Q+kw4AVpW3OpxXWcCyq6zyHbAG3domknhOBN/wAncNmtZ2I+uBq8R5RxubyQfPASvL3XOWujV28ycD//2Q==' $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 ;==> _Fluidwatercolorpaperjpg()Further I added a paper texture.The "Serrated Edge Color" for this version is obsolete but you can add an option... Edited November 22, 2015 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
TheSaint Posted November 22, 2015 Share Posted November 22, 2015 Seems like a nifty program to have in the kitbag, though I don't know what I'd use it for at this stage, as I'm guessing the Post Office won't accept my creations as kosher.Do we call you Postmaster General now?Thanks for sharing! Make sure brain is in gear before opening mouth! Remember, what is not said, can be just as important as what is said. Spoiler What is the Secret Key? Life is like a Donut If I put effort into communication, I expect you to read properly & fully, or just not comment. Ignoring those who try to divert conversation with irrelevancies. If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it. I'm only big and bad, to those who have an over-active imagination. I may have the Artistic Liesense to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage) Link to comment Share on other sites More sharing options...
wakillon Posted November 22, 2015 Author Share Posted November 22, 2015 (edited) The save process takes too long.I modified your script a little bit:Further I added a paper texture.The "Serrated Edge Color" for this version is obsolete but you can add an option...Hum...usually you offer solutions that improve script, in this case it destroy the serrated edges and transparency is loosed ! The interest of this kind of "stamp image" is to be easily pasted on anything...The save process takes too long for high dimensions because the transparency need to be fixed by another way than classic GDI functions.So i prefer loose a bit of time and get a quality stamp ! Thanks.Edit : may be i could add a progress bar using a timer... Edited November 22, 2015 by wakillon AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
wakillon Posted November 22, 2015 Author Share Posted November 22, 2015 Seems like a nifty program to have in the kitbag, though I don't know what I'd use it for at this stage, as I'm guessing the Post Office won't accept my creations as kosher.Do we call you Postmaster General now?Thanks for sharing! Why not ? Do you think i should add the cancellation postmark for scammers ? Thanks. AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
TheSaint Posted November 22, 2015 Share Posted November 22, 2015 Could be cool to have that as an option.Maybe even add an ink stamp facility which includes place names. Make sure brain is in gear before opening mouth! Remember, what is not said, can be just as important as what is said. Spoiler What is the Secret Key? Life is like a Donut If I put effort into communication, I expect you to read properly & fully, or just not comment. Ignoring those who try to divert conversation with irrelevancies. If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it. I'm only big and bad, to those who have an over-active imagination. I may have the Artistic Liesense to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage) Link to comment Share on other sites More sharing options...
Lakes Posted November 22, 2015 Share Posted November 22, 2015 (edited) I just goggled thishttp://www.royalmail.com/personal/stamps-and-collecting/smilersso, I guess (for the Uk anyway) as long as you stick a "proper" 1st or 2nd class stamp on the envelope/parcel you can add your own sticker. Edited November 22, 2015 by Lakes 2015 - Still no flying cars, instead blankets with sleeves. Link to comment Share on other sites More sharing options...
TheSaint Posted November 22, 2015 Share Posted November 22, 2015 (edited) Like "BOMBAY" on this stamp (only better .... more defined). Edited November 22, 2015 by TheSaint Make sure brain is in gear before opening mouth! Remember, what is not said, can be just as important as what is said. Spoiler What is the Secret Key? Life is like a Donut If I put effort into communication, I expect you to read properly & fully, or just not comment. Ignoring those who try to divert conversation with irrelevancies. If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it. I'm only big and bad, to those who have an over-active imagination. I may have the Artistic Liesense to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage) Link to comment Share on other sites More sharing options...
wakillon Posted November 22, 2015 Author Share Posted November 22, 2015 Could be cool to have that as an option.Maybe even add an ink stamp facility which includes place names.It's an idea, why not... AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
wakillon Posted November 22, 2015 Author Share Posted November 22, 2015 (edited) I just goggled thishttp://www.royalmail.com/personal/stamps-and-collecting/smilersso, I guess (for the Uk anyway) as long as you stick a "proper" 1st or 2sd class class stamp on the envelope/parcel you can add your own sticker.Or as pictureitpostage.comThe problem is that is not free ! Edited November 22, 2015 by wakillon AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted November 22, 2015 Share Posted November 22, 2015 Hum...usually you offer solutions that improve script, in this case it destroy the serrated edges and transparency is loosed ! The interest of this kind of "stamp image" is to be easily pasted on anything...The save process takes too long for high dimensions because the transparency need to be fixed by another way than classic GDI functions.So i prefer loose a bit of time and get a quality stamp ! Thanks.Edit : may be i could add a progress bar using a timer...For me the transparency is working properly. You are replacing the color with transarent color using regex which takes "a long time" for bigger images. I added a way which takes some milliseconds using _GDIPlus_ImageAttributesSetRemapTable()Example:expandcollapse popupFunc _PostStampCreateRoundSerration ( $hImage ) Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0( $iGuiWidth, $iGuiHeight ) Local Const $hCtxt = _GDIPlus_ImageGetGraphicsContext( $hBmp ) ;~ _GDIPlus_GraphicsClear( $hCtxt, $SerratedEdgeColor ) _GDIPlus_GraphicsFillRect( $hCtxt, 0, 0, $iGuiWidth, $iGuiHeight, $hTexture_Paper ) 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 ( $hCtxt, $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 ( $hCtxt, $hPath, $hBrush ) Next Local Const $hIA = _GDIPlus_ImageAttributesCreate() Local $aRemapTable[2][2] $aRemapTable[0][0] = 1 $aRemapTable[1][0] = 0xFFABCDEF $aRemapTable[1][1] = 0x00000000 _GDIPlus_ImageAttributesSetRemapTable($hIA, 1, True, $aRemapTable) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hBmp, 0, 0, $iGuiWidth, $iGuiHeight, 0, 0, $iGuiWidth, $iGuiHeight, $hIA ) _GDIPlus_GraphicsDrawImageRectRect ( $hGfx_Buffer, $hImage, 0, 0, $iImageWidth, $iImageHeight, $iHWidth, $iVWidth, $iImageWidth, $iImageHeight ) _GDIPlus_PathDispose ( $hPath ) _GDIPlus_BrushDispose ( $hBrush ) _GDIPlus_ImageAttributesDispose( $hIA ) _GDIPlus_GraphicsDispose( $hCtxt ) _GDIPlus_BitmapDispose( $hBmp ) EndFunc ;==> _PostStampCreateRoundSerration()And as I said you can add an option to switch to color instead of texture background mode which should give a paper look rather than a flat white.If you comment out _GDIPlus_GraphicsFillRect( $hCtxt, 0, 0, $iGuiWidth, $iGuiHeight, $hTexture_Paper )and enable_GDIPlus_GraphicsClear( $hCtxt, $SerratedEdgeColor )the serrated edges color again. Here the result of an image which has transparency: argumentum 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
wakillon Posted November 22, 2015 Author Share Posted November 22, 2015 Well, i do not understand what i have doing wrong this morning with your script but it returned horrible edges.I'm now on my own PC, and after having done some new tests, I must apologize to you ! You are right, the_GDIPlus_ImageAttributesSetRemapTable function is more fast.It would have been easier if the _GDIPlus_ImageSaveToFileEx function could preserve the transparency, no ? AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
wakillon Posted November 23, 2015 Author Share Posted November 23, 2015 (edited) UEZI have retried your first solution on the PC i have used yesterday morning.With your first solution and the last one you sent me yesterday evening, transparency became white !And the worst, is that my own version too !Compiled or not, i get a full white frame instead of serrated edges ! This PC is under Win7X86 with AutoIt 3.3.12.0So i'm completly lost ! Edit : To other members, is there some Win7 users who can confirm this result ? Edited November 23, 2015 by wakillon AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted November 23, 2015 Share Posted November 23, 2015 It works properly in my Win7 x64 test vm. Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
wakillon Posted November 23, 2015 Author Share Posted November 23, 2015 It works properly in my Win7 x64 test vm.So, the reason is it was under X86 ? AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted November 23, 2015 Share Posted November 23, 2015 Maybe the color depth of the graphic card is set to 24-bit only? Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
wakillon Posted November 23, 2015 Author Share Posted November 23, 2015 Maybe the color depth of the graphic card is set to 24-bit only?Does it mean that i can not have any transparency under this kind of PC ?I have also tried my compiled version with my old netbook under XPSP3 x86 and it works !Strange isnt'it ? AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted November 23, 2015 Share Posted November 23, 2015 What is the result on this PC when you run this script?Global $objWMI= ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & @ComputerName & "\root\cimv2") Global $oItems = $objWMI.InstancesOf("Win32_DisplayConfiguration") Global $oTokens For $oTokens In $oItems MsgBox(0, "Test", "Gfx Device: " & $oTokens.DeviceName & @CRLF & _ "Screen Color Depth: " & $oTokens.BitsPerPel & " bit") Next Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now