Jump to content
Sign in to follow this  
wakillon

ImageSplitter v1.0.0.7 Update of 26 March 2014 (Multi Images Split allowed)

Recommended Posts

wakillon

ImageSplitter v1.0.0.7

20140326182230.jpg

 

ImageSplitter split an image into pieces that can be used

- for collage art.

- for website optimisation (speed up the preview of images)

- for printing purposes (big poster)

- for create a puzzle.

 

Load an image by menu or by drag&drop (jpg, gif, png and bmp are supported)

Choose a format and select Columns and Rows numbers you want.

Once Split Image processing is finished a folder with all splitted image parts will be opened.

Parts of image are from left to right and from top to bottom.

Button was made online with chimply.com the easy and free buttons generator !

ChangeLog version 1.0.0.7 :

DPI Resolution can be preserved as original or changed.

Multi files Split is now possible ( Only by Menu - Open - Multi files Split)

previous downloads : 189

ImageSplitter v1.0.0.7.au3 is available in the Download Section

 

Hope you like it !  ;)

Edited by wakillon
  • Like 4

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
UEZ

Might be a good idea to name the files like <filename>_yyxx.jpg whereas yy is the row and xx the column because it it easier to assemble later the image together.

Br,

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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
wakillon

Might be a good idea to name the files like <filename>_yyxx.jpg whereas yy is the row and xx the column because it it easier to assemble later the image together.

Br,

UEZ

Hi UEZ !

Did you see the name of the directories created for stored the splitted images ?  :)


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
UEZ

Yes, but it would be much easier to parse the file names only:

from (4x4)

C:\Tmp\SplittedImages\100_dollar_bill-JPG-Row4-Col4-00
100_dollar_bill_0001.jpg
100_dollar_bill_0002.jpg
100_dollar_bill_0003.jpg
100_dollar_bill_0004.jpg
100_dollar_bill_0005.jpg
100_dollar_bill_0006.jpg
100_dollar_bill_0007.jpg
100_dollar_bill_0008.jpg
100_dollar_bill_0009.jpg
100_dollar_bill_0010.jpg
100_dollar_bill_0011.jpg
100_dollar_bill_0012.jpg
100_dollar_bill_0013.jpg
100_dollar_bill_0014.jpg
100_dollar_bill_0015.jpg
100_dollar_bill_0016.jpg

to (4x4):

100_dollar_bill_0000.jpg
100_dollar_bill_0001.jpg
100_dollar_bill_0002.jpg
100_dollar_bill_0003.jpg
100_dollar_bill_0100.jpg
100_dollar_bill_0101.jpg
100_dollar_bill_0102.jpg
100_dollar_bill_0103.jpg
100_dollar_bill_0200.jpg
100_dollar_bill_0201.jpg
100_dollar_bill_0202.jpg
100_dollar_bill_0203.jpg
100_dollar_bill_0300.jpg
100_dollar_bill_0301.jpg
100_dollar_bill_0302.jpg
100_dollar_bill_0303.jpg

but you decide. ;)

Br,

UEZ

Edited 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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
wakillon

Hum...do you mean like coordinates ? 

edit : for easily re place them ?

Edited by wakillon

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
UEZ

Yes, like a 2d array.

You can do something like

For y = 0 to YY
      For x = 0 to XX
        Copy image to main gfx handle at position x, y, w/XX, h/YY
     Next
Next

more easily.

Br,

UEZ

Edited by UEZ
  • Like 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!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Share this post


Link to post
Share on other sites
wakillon

Ok, i will add this feature.

In fact i have done a Gui - Puzzle where you can drag&drop from external to gui controls and from controls to controls !

So, i did not want to give them a name too "easy" for replace them !  :D

But i will find another way for this puzzle game to be a bit hard to do !  ;)

Thanks.


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
Danyfirex

Really Usefull I think UEZ's idea is good.  really Fast 551 parts  about 10 seconds. Thanks nice share.

Saludos

Share this post


Link to post
Share on other sites
wakillon

Really Usefull I think UEZ's idea is good.  really Fast 551 parts  about 10 seconds. Thanks nice share.

Saludos

 

Yes fast but a bit gourmand in cpu.

Thanks for your feedback ! 

  • Like 1

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
wakillon

Updated

As suggested by UEZ, coordinates are in images name ( ex gromit-X002-Y006.jpg ) 

and corrected a bug when entering a number starting by 1.

:)


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
wakillon

Great Idea, and script, thanks for sharing.

I have a suggestion if I may.

Ability to remove/replace sections one by one, and create new image from that.

 

Hum...can you precise your idea ? 

Are you talking about a kind of puzzle bkground ?  :huh2:


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
JohnOne

There used to be a TV game show in UK, part of it was to guess the person in a picture.

The picture started off with one segment, and one was added each time, the contender chose the square to be added.

Something like that.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
wakillon

There used to be a TV game show in UK, part of it was to guess the person in a picture.

The picture started off with one segment, and one was added each time, the contender chose the square to be added.

Something like that.

 

Something like that ?

#Region    ;************ Includes ************
#Include <File.au3>
#include <WindowsConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <GDIPlus.au3>
#EndRegion ;************ Includes ************

HotKeySet ( '{ESC}', '_Exit' )
Opt ( 'GUIOnEventMode', 1 )
Opt ( 'MustDeclareVars', 1 )
_GDIPlus_Startup ()

Global $iPicNumber = 10^2
Global $sPicturePath = @TempDir & '\person2.jpg'
Global $iPicCtrlWidth = 60, $iPicCtrlHeight = 60
Global $hGui, $iMargin = 0, $aSplit
Global $sCurrentPicPath, $iPicCtrlExStyle = $WS_EX_STATICEDGE
Global $idPicCtrl[$iPicNumber], $aPicPath[$iPicNumber] ; used for save pic paths set to Pic

If Not FileExists ( $sPicturePath ) Then _Person2Jpg ( "person2.jpg", @TempDir )
$aSplit = _ImageSplitter ( $sPicturePath, Sqrt ( $iPicNumber ), Sqrt ( $iPicNumber ), 'jpg' )
_Gui ()

While 1
    Sleep ( 50 )
WEnd

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 _Exit ()
    _GDIPlus_Shutdown ()
    Exit
EndFunc ;==> _Exit ()

Func _FileGetNameWithoutExtByFullPath ( $sFullPath )
    Local $aPathSplit = StringSplit ( $sFullPath, '\' )
    If Not @error Then Return StringLeft ( $aPathSplit[UBound($aPathSplit)-1], _
        StringInStr ( $aPathSplit[UBound($aPathSplit)-1], '.', 0, -1 ) - 1 )
EndFunc ;==> _FileGetNameWithoutExtByFullPath ()

Func _GdipSetInterpolationMode ( $hGraphics, $iInterpolationMode ) ; for compatibility with AutoIt 3.3.8.1
    Local $aResult = DllCall ( $ghGDIPDll, 'int', 'GdipSetInterpolationMode', 'handle', $hGraphics, 'int', $iInterpolationMode )
    If @error Then Return SetError ( @error, @extended, False )
    If $aResult[0] Then Return SetError ( 10, $aResult[0], False )
    Return True
EndFunc ;==> _GdipSetInterpolationMode ()

Func _Gui ()
    Local $iGuiWidth = Sqrt ( $iPicNumber ) *( $iPicCtrlWidth + $iMargin ) + $iMargin
    Local $iGuiHeight = Sqrt ( $iPicNumber ) *( $iPicCtrlHeight + $iMargin ) + $iMargin
    $hGui = GUICreate ( 'Guess the person in the picture', $iGuiWidth, $iGuiHeight, -1, -1, -1, $WS_EX_ACCEPTFILES + $WS_EX_TOPMOST )
    GUISetOnEvent ( $GUI_EVENT_CLOSE, '_GuiEvents', $hGui )
    GUISetOnEvent ( $GUI_EVENT_PRIMARYDOWN, '_GuiEvents', $hGui )
    Local $x = 0, $y = 0
    Local $aList = _FileListToArray ( $aSplit[3], '*.jpg', 1 ) ; based 1
    For $i = 0 To UBound ( $idPicCtrl ) -1
        $idPicCtrl[$i] = GUICtrlCreatePic ( '', $iMargin+$x, $iMargin+$y, $iPicCtrlWidth, $iPicCtrlHeight, -1, $iPicCtrlExStyle )
        $aPicPath[$i] = $aSplit[3] & '\' & $aList[$i+1]
        $x += $iPicCtrlWidth + $iMargin
        If $x + $iPicCtrlWidth + $iMargin > $iGuiWidth Then
            $y += $iPicCtrlHeight + $iMargin
            $x = 0
        EndIf
    Next
    GUISetState ()
EndFunc ;==> _Gui ()

Func _GUICtrlSetImageEx ( $icontrolID, $sImagePath )
    Local $aCtrlPos = ControlGetPos ( $hGui, '', $icontrolID )
    If @error Then Return SetError ( 3, 0, 0 )
    GUICtrlSetImage ( $icontrolID, $sImagePath )
    ControlMove ( $hGui, '', $icontrolID, $aCtrlPos[0], $aCtrlPos[1], $aCtrlPos[2], $aCtrlPos[3] ) ; reset control pos.
EndFunc ;==> _GUICtrlSetImageEx ()

Func _GuiEvents ()
    Switch @GUI_CtrlId ; @GUI_CtrlId : Last click GUI Control identifier
        Case $GUI_EVENT_CLOSE
            _Exit ()
        Case $GUI_EVENT_PRIMARYDOWN
            Local $idCtrl = _GuiGetCtrlId ()
            If $idCtrl Then
                $sCurrentPicPath = $aPicPath[$idCtrl - $idPicCtrl[0]]
                _GUICtrlSetImageEx ( $idCtrl, $sCurrentPicPath )
            EndIf
    EndSwitch
EndFunc ;==> _GuiEvents ()

Func _GuiGetCtrlId ()
    Local $aInfos = GUIGetCursorInfo ( $hGui )
    If Not @error Then Return $aInfos[4]
EndFunc ;==> _GuiGetCtrlId ()

Func _ImageGeneratePathByCoordinates ( $sBaseDir, $sPrefix, $x, $y, $sExt='jpg' )
    If Not FileExists ( $sBaseDir ) Then DirCreate ( $sBaseDir )
    Return $sBaseDir & '\' & $sPrefix & '-X' & StringFormat ( '%03i', $x ) & '-Y' & StringFormat ( '%03i', $y ) & '.' & $sExt
EndFunc ;==> _ImageGeneratePathByCoordinates ()

Func _ImageGetDimension ( $sPicPath )
    If Not FileExists ( $sPicPath ) Then Return SetError ( -1 )
    Local $hImage = _GDIPlus_ImageLoadFromFile ( $sPicPath )
    Local $aRet[2]
    $aRet[0] = _GDIPlus_ImageGetWidth ( $hImage )
    $aRet[1] = _GDIPlus_ImageGetHeight ( $hImage )
    _GDIPlus_ImageDispose ( $hImage )
    If $aRet[0] And $aRet[1] Then Return $aRet
EndFunc ;==> _ImageGetDimension ()

Func _ImageSplitter ( $sPicPath, $iColumns, $iRows, $sType='jpg' )
    If Not FileExists ( $sPicPath ) Then Return SetError ( -1 )
    Local $aDim = _ImageGetDimension ( $sPicPath )
    Local $hImage2 = _GDIPlus_ImageLoadFromFile ( $sPicPath )
    Local $CLSID = _GDIPlus_EncodersGetCLSID ( $sType )
    Local $w = Int ( $aDim[0] / $iColumns )
    Local $h = Int ( $aDim[1] / $iRows )
    Local $hBitmap = _WinAPI_CreateBitmap ( $w, $h, 1, 32 )
    Local $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP ( $hBitmap )
    Local $hGraphic = _GDIPlus_ImageGetGraphicsContext ( $hImage1 )
    _GdipSetInterpolationMode ( $hGraphic, 7 )
    _GDIPlus_GraphicsSetSmoothingMode ( $hGraphic, 2 )
    Local $sPrefix = _FileGetNameWithoutExtByFullPath ( $sPicPath )
    Local $sOutputDir, $iSuffix
    Do ; create a directory based on image name and with infos on settings.
        $sOutputDir = @TempDir & '\SplittedImages\' & $sPrefix & '-' & $sType & '-Row' & $iRows & '-Col' & $iColumns & '-' & StringFormat ( '%02i', $iSuffix )
        $iSuffix += 1
    Until Not FileExists ( $sOutputDir )
    Local $sTmpFile, $k
    For $i = 1 To $iRows ; split from left to right and from top to bottom.
        For $j = 1 To $iColumns
            $k+=1
            $sTmpFile = _ImageGeneratePathByCoordinates ( $sOutputDir, $sPrefix, $i, $j, StringLower ( $sType ) )
            _GDIPlus_GraphicsDrawImageRectRect ( $hGraphic, $hImage2, $w*( $j -1 ), $h*( $i -1 ), $w, $h, 0, 0, $w, $h )
            _GDIPlus_ImageSaveToFileEx ( $hImage1, $sTmpFile, $CLSID )
        Next
    Next
    _WinAPI_DeleteObject ( $hBitmap )
    _GDIPlus_ImageDispose ( $hImage1 )
    _GDIPlus_GraphicsDispose ( $hGraphic )
    _GDIPlus_ImageDispose ( $hImage2 )
    Local $aRet[4]
    $aRet[0] = $iRows*$iColumns ; pics number
    $aRet[1] = $w               ; pics width
    $aRet[2] = $h               ; pics height
    $aRet[3] = $sOutputDir      ; directory
    Sleep ( 500 )
    Return $aRet
EndFunc ;==> _ImageSplitter ()

Func _Person2Jpg ( $sFileName, $sOutputDirPath, $iOverWrite=0 )
    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 &= "qRIEVBImfwqfPPtUb5yeRVIR4ZHaoO2atJCo4A6VKFzg5wKeB1GeDXOjcYoxxjnFSIhHXvShcjgc08YHToO1NagN2ntjFIUOO1SAALk8nNBG7oTjNAEG0A8jj2qJ1BYKMep+lWZGCrkcsegqBlI5PU9cUIZBJGGJwKqSQ5GDitHlhg9KhkiB49aTVwMeWEjPGQPSqjBozuUfUVtSxEKcDiqU0HPHFAipkOmQf/rUmTg0jo6NuTnPUetLuEgyvbqKQC5yPWkJ9qD09Dnigkjr1qgEyVIYHDDkGuw0q/F7aB2++OGHvXHHmrukXps70Bj+7k4NYVoc0fM0pT5ZHWOgExk5Bxj2qN2zkZ4p7HKDnNV3OFPPPpXGkdjZDKSO9RByGHcUkjcY7ZpF/nVpGbY5m/u5JqrPJjPNPZipOBiqspLZ7VdiJMydSmJfbk1mjk1PduXuHPvioAcY967YK0TlerAdelPxgZIpBxTjk8ntTEM7U4c/lScjNOUZU02AqnBzTpBhvYimgUrHgCkAE8YFNPBHvS5wTRIANopAOI+UDHIpBwead35oIG0GhAPR+3pTj8x6ciolPOe1KThvehoB5O4DHFSR5AzUKnJ4qWHLblzUtaDOtit0fS0mXO1xn6MKwdR+abIxzzXQ6OHk0Xn7gNc/fLuaQjoDWa0Lex3/AIDmJhCnoO/pXeygvEccH+ded/D7LocnABFejMcjAHFaRREiGPO3BPQVMhwKgPMoAPBqwOvHWt4mbHE7eR0NP35GajycH0pAw654q0iSYNnGTzSMfypoP5U4sCOOgoA8e3c9eKMc+wpmeOtOLADmudI3Jgcc55xSGYL1OT/Kqkk2R1xVdp8nGTTSsBea49aYbj361nGfPOelRGc54NAGobj5s8Z7U7zgRz0rKE9PE4HSkBpFkPNNIz7iqgmyOtTJMCDjrTQXHMucjvVSSPA5/M1bLg0yRdwBxmlYZlywY4A5NUpYmj+dBz3962JF9arSRg84pMRnq4kXcvHqKXPHNLNAyv5kY+YdR601W80ZAww6igQE96a3PSndfrSEfN0o3A6jS7wXdipb/WJ8rVNJ3xxXO6Vc/ZbsbidknB+tb8hOMflXHOHLI64S5olWR+SOtAOKilYmSlzkUkArfXpVa4ISFmx2q0kZJxiqGrt5dqy9CaqOrsTLa5zrHcxPqaSgc8U4rtPSu45B0aFm2gZJqQqEOM02J9nI4apPvDe33jSAhbqRSxnjHahh70xBg5NMZMenFNbqp9aUEk0SDnAqQEIxSZ3MM+vWpCMpUYHzD2oAc/DcdqQn5j706QZGexpkqbSB2pgIxOPoacp3YpmafGAWH1oAlUfOAacmd5APNLINrqelIOHyakZ3PhZ0k0m5gkAIHINcvevieVB03cGtzw3MI7S4VwQzLkGsC55ndvVqzW7L6HfeAg0MLFlwrng16EzALyeCK5fwhaKnh6NWHztzXSpHkgsOAMVUCJCxLnk1IeuB0pVFShcAYrdGbGAZHpURBU4FWMfL9KjYc9PzrRMljM4B560obHuDTDzxS5xTEf/Z"
    $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 ;==> _Person2Jpg ()

Edit : photo included.

Edited by wakillon
  • Like 1

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
JohnOne

Yes.

Sorry for late reply, I was busy making my own, which is a very simple version of your's above.

Your ImageSplitter came in very handy for getting needed gui and label sizes. :).

I think there are many puzzles you could create with your code, even just mixing the split images up would be a good one.


AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Share this post


Link to post
Share on other sites
wakillon

Did you find who is hidden ?

Here is another version adapted to most picture dimension :

#Region    ;************ Includes ************
#Include <File.au3>
#include <WindowsConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <GDIPlus.au3>
#EndRegion ;************ Includes ************

HotKeySet ( '{ESC}', '_Exit' )
Opt ( 'GUIOnEventMode', 1 )
Opt ( 'MustDeclareVars', 1 )
_GDIPlus_Startup ()

Global $iPicNumber = 15^2
Global $sPicturePath = @TempDir & '\person7.jpg'
Global $iPicCtrlWidth, $iPicCtrlHeight
Global $hGui, $iMargin = 0, $aSplit
Global $sCurrentPicPath, $iPicCtrlExStyle = $WS_EX_STATICEDGE
Global $idPicCtrl[$iPicNumber], $aPicPath[$iPicNumber] ; used for save pic paths set to Pic

If Not FileExists ( $sPicturePath ) Then _Person7Jpg ( 'person7.jpg', @TempDir )

Global $aPicDim = _ImageGetDimension ( $sPicturePath )

#Region ------ Split Management ------------------------------
If $aPicDim[0] >= $aPicDim[1] Then
    $iPicCtrlWidth = 50
    $iPicCtrlHeight = Int ( $iPicCtrlWidth*( $aPicDim[1]/$aPicDim[0] ) )
Else
    $iPicCtrlHeight = 50
    $iPicCtrlWidth = Int ( $iPicCtrlHeight*( $aPicDim[0]/$aPicDim[1] ) )
EndIf
$aSplit = _ImageSplitter ( $sPicturePath, Sqrt ( $iPicNumber ), Sqrt ( $iPicNumber ), 'jpg' )
#EndRegion --- Split Management ------------------------------

_Gui ()

While 1
    Sleep ( 250 )
WEnd

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 _Exit ()
    _GDIPlus_Shutdown ()
    Exit
EndFunc ;==> _Exit ()

Func _FileGetNameWithoutExtByFullPath ( $sFullPath )
    Local $aPathSplit = StringSplit ( $sFullPath, '\' )
    If Not @error Then Return StringLeft ( $aPathSplit[UBound($aPathSplit)-1], _
        StringInStr ( $aPathSplit[UBound($aPathSplit)-1], '.', 0, -1 ) - 1 )
EndFunc ;==> _FileGetNameWithoutExtByFullPath ()

Func _GdipSetInterpolationMode ( $hGraphics, $iInterpolationMode ) ; for compatibility with AutoIt 3.3.8.1
    Local $aResult = DllCall ( $ghGDIPDll, 'int', 'GdipSetInterpolationMode', 'handle', $hGraphics, 'int', $iInterpolationMode )
    If @error Then Return SetError ( @error, @extended, False )
    If $aResult[0] Then Return SetError ( 10, $aResult[0], False )
    Return True
EndFunc ;==> _GdipSetInterpolationMode ()

Func _Gui ()
    Local $iGuiWidth = Sqrt ( $iPicNumber ) *( $iPicCtrlWidth + $iMargin ) + $iMargin
    Local $iGuiHeight = Sqrt ( $iPicNumber ) *( $iPicCtrlHeight + $iMargin ) + $iMargin
    $hGui = GUICreate ( 'Guess the person in the picture', $iGuiWidth, $iGuiHeight, -1, -1, -1, $WS_EX_ACCEPTFILES + $WS_EX_TOPMOST )
    GUISetOnEvent ( $GUI_EVENT_CLOSE, '_GuiEvents', $hGui )
    GUISetOnEvent ( $GUI_EVENT_PRIMARYDOWN, '_GuiEvents', $hGui )
    Local $x = 0, $y = 0
    Local $aList = _FileListToArray ( $aSplit[3], '*.jpg', 1 ) ; based 1
    For $i = 0 To UBound ( $idPicCtrl ) -1
        GUICtrlCreateLabel ( StringFormat ( '%03i', $i+1 ), $iMargin+$x, $iMargin+$y, $iPicCtrlWidth, $iPicCtrlHeight, BitOR ( 0x01, 0x0200 ) ) ; $SS_CENTER, $SS_CENTERIMAGE   
        GUICtrlSetBkColor ( -1, 0x000000 )
        GUICtrlSetFont ( -1, 11, 600 )
        GUICtrlSetState ( -1, $GUI_DISABLE )
        $idPicCtrl[$i] = GUICtrlCreatePic ( '', $iMargin+$x, $iMargin+$y, $iPicCtrlWidth, $iPicCtrlHeight, -1, BitOR ( 0x0100, $iPicCtrlExStyle ) ) ; $GUI_SS_DEFAULT_PIC
        $aPicPath[$i] = $aSplit[3] & '\' & $aList[$i+1]
        $x += $iPicCtrlWidth + $iMargin
        If $x + $iPicCtrlWidth + $iMargin > $iGuiWidth Then
            $y += $iPicCtrlHeight + $iMargin
            $x = 0
        EndIf
    Next
    GUISetState ()
EndFunc ;==> _Gui ()

Func _GUICtrlSetImageEx ( $icontrolID, $sImagePath )
    Local $aCtrlPos = ControlGetPos ( $hGui, '', $icontrolID )
    If @error Then Return SetError ( 3, 0, 0 )
    GUICtrlSetImage ( $icontrolID, $sImagePath )
    ControlMove ( $hGui, '', $icontrolID, $aCtrlPos[0], $aCtrlPos[1], $aCtrlPos[2], $aCtrlPos[3] ) ; reset control pos.
EndFunc ;==> _GUICtrlSetImageEx ()

Func _GuiEvents ()
    Switch @GUI_CtrlId ; @GUI_CtrlId : Last click GUI Control identifier
        Case $GUI_EVENT_CLOSE
            _Exit ()
        Case $GUI_EVENT_PRIMARYDOWN
            Local $idCtrl = _GuiGetCtrlId ()
            If $idCtrl Then
                $sCurrentPicPath = $aPicPath[( $idCtrl - $idPicCtrl[0] )/2]
                If Not $sCurrentPicPath Then Return
                _GUICtrlSetImageEx ( $idCtrl, $sCurrentPicPath )
                Local $iExStyle = _WinAPI_GetWindowLong ( GUICtrlGetHandle ( $idCtrl ), 0xFFFFFFEC ) ; $GWL_EXSTYLE
                GUICtrlSetStyle ( $idCtrl, -1, BitXOR ( $iExStyle, $iPicCtrlExStyle ) ) ; remove $WS_EX_STATICEDGE exstyle for remove ctrl frame.
                $aPicPath[( $idCtrl - $idPicCtrl[0] )/2] = ''
            EndIf
    EndSwitch
EndFunc ;==> _GuiEvents ()

Func _GuiGetCtrlId ()
    Local $aInfos = GUIGetCursorInfo ( $hGui )
    If Not @error Then Return $aInfos[4]
EndFunc ;==> _GuiGetCtrlId ()

Func _ImageGeneratePathByCoordinates ( $sBaseDir, $sPrefix, $x, $y, $sExt='jpg' )
    If Not FileExists ( $sBaseDir ) Then DirCreate ( $sBaseDir )
    Return $sBaseDir & '\' & $sPrefix & '-X' & StringFormat ( '%03i', $x ) & '-Y' & StringFormat ( '%03i', $y ) & '.' & $sExt
EndFunc ;==> _ImageGeneratePathByCoordinates ()

Func _ImageGetDimension ( $sPicPath )
    If Not FileExists ( $sPicPath ) Then Return SetError ( -1 )
    Local $hImage = _GDIPlus_ImageLoadFromFile ( $sPicPath )
    Local $aRet[2]
    $aRet[0] = _GDIPlus_ImageGetWidth ( $hImage )
    $aRet[1] = _GDIPlus_ImageGetHeight ( $hImage )
    _GDIPlus_ImageDispose ( $hImage )
    If $aRet[0] And $aRet[1] Then Return $aRet
EndFunc ;==> _ImageGetDimension ()

Func _ImageSplitter ( $sPicPath, $iColumns, $iRows, $sType='jpg' )
    If Not FileExists ( $sPicPath ) Then Return SetError ( -1 )
    Local $aDim = _ImageGetDimension ( $sPicPath )
    Local $hImage2 = _GDIPlus_ImageLoadFromFile ( $sPicPath )
    Local $CLSID = _GDIPlus_EncodersGetCLSID ( $sType )
    Local $w = Int ( $aDim[0] / $iColumns )
    Local $h = Int ( $aDim[1] / $iRows )
    Local $hBitmap = _WinAPI_CreateBitmap ( $w, $h, 1, 32 )
    Local $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP ( $hBitmap )
    Local $hGraphic = _GDIPlus_ImageGetGraphicsContext ( $hImage1 )
    _GdipSetInterpolationMode ( $hGraphic, 7 )
    _GDIPlus_GraphicsSetSmoothingMode ( $hGraphic, 2 )
    Local $sPrefix = _FileGetNameWithoutExtByFullPath ( $sPicPath )
    Local $sOutputDir, $iSuffix
    Do ; create a directory based on image name and with infos on settings.
        $sOutputDir = @TempDir & '\SplittedImages\' & $sPrefix & '-' & $sType & '-Row' & $iRows & '-Col' & $iColumns & '-' & StringFormat ( '%02i', $iSuffix )
        $iSuffix += 1
    Until Not FileExists ( $sOutputDir )
    Local $sTmpFile, $k
    For $i = 1 To $iRows ; split from left to right and from top to bottom.
        For $j = 1 To $iColumns
            $k+=1
            $sTmpFile = _ImageGeneratePathByCoordinates ( $sOutputDir, $sPrefix, $i, $j, StringLower ( $sType ) )
            _GDIPlus_GraphicsDrawImageRectRect ( $hGraphic, $hImage2, $w*( $j -1 ), $h*( $i -1 ), $w, $h, 0, 0, $w, $h )
            _GDIPlus_ImageSaveToFileEx ( $hImage1, $sTmpFile, $CLSID )
        Next
    Next
    _WinAPI_DeleteObject ( $hBitmap )
    _GDIPlus_ImageDispose ( $hImage1 )
    _GDIPlus_GraphicsDispose ( $hGraphic )
    _GDIPlus_ImageDispose ( $hImage2 )
    Local $aRet[4]
    $aRet[0] = $iRows*$iColumns ; pics number
    $aRet[1] = $w               ; pics width
    $aRet[2] = $h               ; pics height
    $aRet[3] = $sOutputDir      ; directory
    Sleep ( 500 )
    Return $aRet
EndFunc ;==> _ImageSplitter ()

Func _Person7Jpg ( $sFileName, $sOutputDirPath, $iOverWrite=0 )
    Local $sFileBin = "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"
    $sFileBin &= "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"
    $sFileBin &= "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"
    $sFileBin &= "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"
    $sFileBin &= "vo7mif8AIuhkVQz8PscbS6zn4UnKH/RFdg20jaK4PW6zxF9jLwgn3nMCWvY2uPoTsx6O4NdmngycHv8AY4QxDB1ml/wzWe30dPfhY0E/5HODhozuPkanWPWIdPKvJY8+zsPk71s3iDf8nLhyoURAKHP6T5EyL8unsfsaIrogg8fBpHDYSdkOBBI3gXFGk6P0RP8A6NdGlOYKWxNdmghnq4SXwq/QhZTDgJiVrRsKo6d0k5Eihs/UE+UjuODfJDPArmr8D8FiLnAthYdiQx93+ELlNMZ+vRj2N+xYaHsLQvi/sY4+kW0zplkPg0KnSiT6vxxw6Zk+9FJpuh+Blfw1g8C48kUqZwU9OFnI8LJ4vJxlrHfZVsX0INREXh7I4cEfXBqkuWM10zuaICPsbSzC2BI20lKI03g0TSwuPoa/ouN96Q/6B38AQXlmJlOPB3FnspL/AEK0qNsTrgL2o1TX/Sm/sbLTR5x6ceeMZPHBefBfDR3h8jmDSoyr0GFChf8ACIJideluimITLUOb2eFyJ+C52EjEYux0wHz1X6FvhCdK3y+BRrA1mpUba7GIzN4n6HWE64aB+li/+krT0ZwYLpXpAMcXAlyf2jMU232Kvwswqii0VrofiE6CUVweQcc7I+Rrr6F9SKO6J6HliX2bXaNeB3kwN1b8GsdHAOw2Deze8OljZTAYhOiqDrYLoYm32Ez1p74G3cEpr/oSq4/gQnP9CGt05Uo6yusGlH1wco0KYaRWl46OE6M+CODrMRkL+jGMCWlB4DM4DTdNlBr6NVFpOiIuPZMmUhNpjiGIdvkbxMDk5DpJRvcqhZ0DZNJ8jPJfAVL6E1shl0rB3oPxn4Jkx6JtjfMXJdPBkwUzoa1V/hfgRB13Dkdnmh2A44xyaiOMV9DuDjo4NzfIxJeGc0w0V8Dlgl5jmcMWQRJo1PkNa1it/Qg2T0p2cVEsEzBVMHa2sKqnIouTbHHkfliNqimkEW21EN22Ps7Uo7IxwuU2xuxejWl0LsuGHYaOIaX6KJrEo/nR4saPQjHKM8lnPAgw02uxjHMYh3Dk8CFhPTfJRRO/o2B5aws1RGld0XUYdo+Z0NRwfxSOcinRP6+Au1E9kfBCRpfCkqOcPEJcAti8jhkYxETiqTG/J/CjxWTT7CD1pt/0NEsbP+hPSP2OXKijy9DLJ1cDXzXgXCGsHx0ctZ+In/g4+GxLukXIUWjVUXwLhhL0OCZQImCulEPuZ5IaYeTgVKxu7hskmdgSOi2a+yUtMORbGNWCD4+AaAjY/wAGKcwilMCRIVtE4RTaXQo0lsVPPI44mNGt5O/YJnBBClp9F/8AZDgmyzUVAknbGVM/RzLoSvB4zobkqbpQ8o3/AOEpJTvGOcvIgXgJkbag4CZ50K2n9cEaR/R2KKlw79C0Z9CrXJ3i1yKbo9mCgkErBd5wfCejbyjGrr/ItZhh4noS1o9ImHYtLBKTgow3HyYrSZCpzg+pjm94OFh2J/Iv2LX/AAL1WeUKVFwFcc0Y1RpoZYZ2Mkmk8fAwGHjRWyRgHGjgP8MiKhc7IQyERnEniL8BXRZm4NPaFKBsSHXyqQ1yYkJ4nBJRmLgd6oU4KpzSGrRWp2eez3BpSDn9kcOjRzydBDD0chilCXtCXCRtsxlWiRIuNH9gZvumSyMcocrH9lX0P3PsK6cjHZ5yUm8IexC3yKuuUhu6PhL5Xon8FNFyoN5cx0MIzRtJ/GyNZeB+W/BRWoJK++hptCDeqc5+C9+ehLSwQoiRjEebwXwfDIJiVPsXQpiOgnrkhCStQyhJ9lSba+juP+zQ7WyrE2MfBfWErh/GNxoskVkBPkjiVvgRupC+TW5NY2zO8saSOb+whQ7G1ToZW1tmFyZEwxTh/wCC2/8AgJSsXR8oJT0UGqxnn/RD1Yd5ycV8o0O254JwaZpIPcE7cHgHFciKYdReenW6IOIQ7Q90ZiC2pkePPhGvls/Qs8Mcahq1Uvoc4I6EuJJg1xDe+AwqCeLSxWOy4JHJpDlhDI0Zd0WJXk1yEK1X7GH67JiuFtN4o2/F/FhtEx8ELFhVGhPkRRIqUH+rEkh8wwsVCZjOUJyv8E0goPlyxcFcR4d/B5swTwRJz0NOCH3SPpGJQNEYfuEylcYlkEsfvRVXJwGov6C1vR3I6G87FvRfpNDdV4hRuusgLwTN+Bz4VshJ5yOnXDNPQ9GLpyglZ0+Z/i+jEmNHETOxpBRcEkYoc68jZ/ZTJ9DZy6ujWLpyWo4obcL48mB5UYQ1fRLSBnopz0PCeRpZQTyyA2JEZwKtThECcbzkr2fzBHlflFyGmvm6OU/9MM7JByQPWo2NqsXFfoW+RbEhCR/ngkT3sYw3zG35JC+juRZ/RCOh0+zSXTQTP4INUVU2JHxn2K0fAzgfYuBUvsn2UFNRAtqR+SCM8nRltYxrBs+GPq2PSaP1DX7lheWajnsV1azoTguSk54LTkX9CFxyb+GcnPaOgUF0V+RiXfI3AXok4aTOAMFJbyD/APTE6FCaHidMZL2qEjFkXS9i8E7wRyxknGJkzJ8EiKiDwLhE6YJdmPunK17EvDRcknyPp7mr6LVSX0mVW6npCy9CbShInpUaLDG18O2eUEp2oTVFcF3SULaaC6dnFtiMT7HbCwTf/qm2KdxUJxTwuRNPzgrR/DMun5GIOG9fo4CCIY3xce/E/sf4ofr7PYhbgP4jgtM6E8Y/8E6HZ484LqbR3TIcEZeIPeRqpJwUTgs419MaTHj+iPHCQldgy6n4POFG3U/Rn/EUtX8DbVB8jR+xNU19tiVvDFLEw5ng5Va/DZr8FEy69/BV5l5E8iZuVPYpI0Q88MN17Ib0W5IvOSbKZ1rc+x1R5ob+LD/Ff+EuBcipSSHIXJ/gdDi+OnyvAL41yh8jOS+DmK1Eqcv43YYbHxcn0d/i/wAzgvh8/p4O/gujmK/5C0dDgcfz/wAxMGX6b+Q5H//aAAwDAQACAAMAAAAQaypYjGy8uGEnt9FajPlzeD+r+5QbPM8E9tgxw3oH9ICE3P8ANLvQ0JiXH5OmsL6mecyBO+uiVu6vCUys5ExdA2h4mcs+bhSX2snteKciudUURTuomqWwMB8TgvK7gr9B4RIxTonQuS9/qyrbY03zpbDK/NuWuRdTbmi0G4hf7CeFAxJQdd5hfytLRcbNSb0nUO3iHDOR0zN588PdiJjM22PF54VTqgAwOD6Q2xnqJigTXrxtQtj0vnJhj3M2hNxtJLRox8X/AIouih/o3qklMVmnFuKr73Y9oaFZlj9JgVw4TEANejkx8XKblt7oTSSBAuq5mOXMMN6L39JaLGNRt0uAJDVMkau/6k7SFNAylDDZSO+E8uqMi8HzXXbBZjdwDMNL12GwMGsv60hjK3XQtAsFNl94Vxkfd6dE4DFOWXzarNwMH9fGGzDzRbxvL9NYA/yrCDoJXWAHlnbG2bQsEx8o894eDu1y2s4nMYfJQw+PYblGP3Sa9AoXpkWwlFZY2nxXT9rbhS27UCVzRFZLHnsQhVRU6XNyzK+Gidlf69EXItEkidrYbVsF4x7EKOUGSdGGOREIfGS02rPOyczwsLkBlwxTn1qvqmRiJkFj7zd7MK6H+DzvvMujO9F+EIbGAz3iELWifYpH5g1+nYRuR0+B8IEACB74AH51yL98Pz/4Nx6Hx/8AfD//xAAeEQEBAQADAQEBAQEAAAAAAAABABEQITFBUWEgcf/aAAgBAwEBPxAq8BPOMtjWZLNlcNcELLLRA2J5Gw93yPLYeCqSZYR+w7h7hh28t/JW3btyPazOCRAjgzLS18Yfs/i3LY8oYcDy1hyGNfOAju94DqSwgkjFqS6Sfs6lEaW/loiPsNJO4xb1b3DD3dJRJuxEOlmyiF0fLyYBJhrdizZMu19mW98fkd8bkoNnB2ztIcjDqeoxdEIlbA14O/ll7f3tfGS7lCzwl6ujlmkFj7BtvgldLfunRxJnT1Yz2OeXZ1dF1bzDTG6CNYYSR1s7"
    $sFileBin &= "NJVh6YY9cfeCjocI7Jlg9jB9Y9i7+2dw/Fku/ptHS8cHZpdHp7l+sjYtjwzz7aPkQvbMjhm+9npJrwWzINh7H0ukk+TOEI+XvgeWvZH5LwZP2QeEA9lnkt7tcu6wxcH6YTGLU9LdplfZ2+3C9cXLq3uydJb9rXuw+LHllaJN0Jd8IeDpEPwtlbceyTyde8MBL1e7q8CBk+3raJiF9uhCQZebuxx3zgwx3ZvlqyXPOMg7sgBwGIX4Yd8DtqFnUh3Jd58WpCnEePN2QzyXbPzgPJMu0+pm3chSSyO8D2H20g64e+o2QT2nj6l3DzBZxF1akuhdCEsL2Ow66gg+M8ZFje4DMvEyMsm2LiJdX6hyXca6Z8u4JQhvB4TSwWCIOp8HS2aWZF0dx7PIkeCXV2nqIat6j+y5LtkBJx7GfIQ9nNjAvWDI5bTkT3Ht0mXV74J3ngbpbbfIh6iLtovePjbyFCes9eR0jLSXgXi5sS7vEfsZDscLDbDH94XI/c93ifiWeWsvyey8Pbqc+Ayvwh+cBnL2wyzuz8jZRKYO2JEsssyzJ/btAE3c+pd8FvXEWxmQWF09ulkeQP5f8z+7C3WfwTn3hT7klOp/I64gnyXLqng4c4S3PIeMyN3gbxopP0s3ZdOZIfCVJsr5Hb3fKOi23ruVs8j3w8bokXsOFt84OyHOmxHsD5KPsfpD2wO7Q8l2zO7YNby9tJ4T15IhvlZQ3sH5JFs9x3bkInbdrbZmd7feABevCzcwl3kiL3/kvHL7/leJvvLPkR94Pt78/wD/xAAfEQEBAQADAQEBAQEBAAAAAAABABEQITFBUWEgcYH/2gAIAQIBAT8QAOJO223c8C3SCxMvvEbaccvBS0sk7kxj9iJkPDfJcE1szu2Ytyccw82NXSP1xb18jfH+3XpMP1erJZbWz1mc4ITMHsvyQ25Lk/zgMt2H7OoF8L8QxiK436Ysg6njHnFs2zJkhBZBz7IL3dLy7QT1fYXEbDftgLFmORHXG8F13e77N7OoF0+S3QiPZMZ33x99hJJHUJwvOrEXy2H0v52DCz/AiQ3u3JHsJbAe2R7vshvLowu97ny3q6zuRgTa9w8GZl8usJBL6S67s5AO47je9XZ8mS87sHEuwl+rd05my+NuN4jHTdg0kfCD84d+iH2N4DHyXfZb1IbdxI8bK1mxauCRBtpD3ebeXSZdM0jakMdtqw/YcltiN6uuIcBPC3LeuHfsrt4vxl0xfyDu38hZItoYyJDyQdJHwb/2JosP7HWHViwcf4ki/wC2F2QhPsGcXds76vMtI9z+XrjOrLIyQ+WbJA3q88LvjkklhGFsEzLqWGx0WQJ7l3eLrLyEkdXvHu8W5A4PDO7OD1exw4kbezjvjpZZ2TYA9kZbPks6/wAHXDcXA4e4cM+WxWsO/Ywl27MgJHksl3P7K+8PTgZe4jmQTke/8DbbLe8BjqI7S9uxaRL1JncOeX6vM65DgeuBweoPskknfc/yxYM4ZrdF3a5a5YrKxgrYckRvH8XiyY7/AJhB3NlnczqBMz3j7vEtjyO/ZHjIIIL1eYmGkeEnhl18mCThQjZwfdkfrYbB8Z6h+RHBjhEkeocbPZ82xtwlfbYd942MT0l27DL1Hkq93XMsxtYRDuEEzHuSSRm8Zb5DDJfYtfsj42Fg+Xditt84T+mPw7du7ZwX3gHEIJngEGZ942TqzuAlC2eR8WT93/V/3L/Y7v6nq+zLuMhnkIdcAkktjiEycORPTZ1pCjEBmkZfjOvsOM/bcmWZwHJkyQvpHYTw8OG8t7vZx0FmcgtvWW9R3dvAb3xB9ujDhmbzPvJ4j2/Zjy/eV/wDgj/D+XxwL//EACYQAQADAQEBAQACAwADAQEBAAEAESExQVFhcYGRobEQwdHw4fH/2gAIAQEAAT8QsQPlFf5nW9xfrFTrmb9PImCm9an+YUvHCsl08LBVTvIWxWnyPwu/9Qgpi5ZBeDavyXFVzI9qAhksW/4Sl0emBAF5dxApoPkBQD/MvbN1y5qhpFVAcyhtymgDAquxe0RjC0fAM8jUC/3Gn9dlKBpAC0Tj2JTovksNSxIoKuDFtvrEr0Q2OhxOvyWSGYfsVVnOwTSqfYGpZuN1oIODGOylb8hfwwplwLfguaRlt3ycy38CNwwWVUdKesijYpu1k9zTDOwsGlQLvhmENq0Kb/6ZY4UApUeKSFVz6mk8GvpArSspfYPBZWHNlpNQ/wC9hKC6NfyUiaWlZLBa+VL10v2A063fsohpO/Ig2DrntToQdRV318ivpOQVxAKV9msn5Lk4rD5KO6PbJde1X5GLs5kUNRfzGLw3UMHD7LDN9PsLIW7cCb2rlLG/Vw1Ef75AULD19gtWPxlBbx8hvHNv8mCZ1t5LRKoJq2V4wUI3l5Eu2gvkuoP8RKt/ZdRb7Bsoi6xtVy5Q1wfZgsH2Ola2Y1M19fZuroZ+RNCA6/ZSEceMA2u77LRA0/xHreK2kYlaflQdB8XGZdHtfYBAHA7cRNgA/SIZj9HpZz/Mr4X6/mU022tXz9iP4A+ESk0wTYPN4FfPyWCza9lYFiVRAAHCUNECr1cYGU7VXDxENd2D0RTagEKOeEF2XbvwqOVZgLdh+xuAU+bAa2qesZQFRrYfNS1iztpE09rLitNKefZbhy4XaoJ/mBRGr5UAEVrsra7bELR3yC8g9iGlLfvSCmtJeekxtQDh7MA/ktqPaOOPyWjTDjeTW2K3tygL9+RBYsJXegD/AHA+hbZcJaC/qBuBfqF14/HYONh7cW1VewUWUiDlvwYtVWSuEF++Q2b0NI12ce32P1tRh8gr0/vsdXLwiqhseSjEPgjP+4XTBC4toCifI3v8RxpCAMd8Y/AXucg0st5GsbmsU42nhL7N29lBkvT8hSpqL5RF2tHQa2C6Ko7E5v6CC6qNuxLA/wB5PYH7FG6gbX/ItVA1tf8A2AIt207FW11vjccLr9P+MI3Ue9CBIhPa/wCxK0F+zRuct2WBFElAG5WprsVpBev5CS2Mg5va5sXxAcqUtWjdj4g4EuKW/rsVI0Gy7RB2oWhVfYIrovC4XReHX+JctB4P/cNGa9q3/UKbU9CRXo1zlRxKiv7QAFjxhqptcS9oF9lEqHvEomwHzFEstdPfZc9A4OQaSaXtw2AWlkB2ETCPbIAkC+PYQUgbV1g8UQdPLhLII5fagCoh8fkEN52EqNx13l/ZU6otbLW6L/tA0hP5l7Bqv8pTdYPKYNxtvnLg9C1GHkUoBy2XbfgrCKr1r1VwDUW7ewEq/RSXAN/ELtK+NpGO04dTyKpHh7UwIOK15ERWnjf5FbuTaYELetQBrev2L6KP+THaj19lhRvhEZ16GUwYcQwDY4TBGP8Acua0xLhRNuF3U/Q9mFDbz6yvF9Md4+f/AJ7KRe3V6wTdg3QuaYAsmv8AQx+cq6CmOAx8sh8Zuek2YRMHZgAThyLgc2zSoboMu6uJN0F2/Zgl9HiMpUCsuLBH6I4aSwc9nyILBQee+TIcjqUNLYxWtbKOkDeFVRLUw7cpRXe/ktFCzx5DTgPyCRhrlkNcblI04Szaz8iA7glrasdipLf1Ncr+nI8Nzw8lLavb6v8AIGxUuQKxb1XZRkHVVWGxIvxiSETxB1DfyWnCZohbe+xHVBjY2IWPPsC2FCt5UQEh7qIRKa4jVyvifW5XAPIDKC8W4bWhX9wwfX32AAsA5cQudePktzF7Z2JFx+ZEmrX/APG4rBo1Knf8LUkE3B+pcpwab69h3Eg+9mGgPkOjobR7AFBD21f4l6AOdEYcUN8gtpm6si00DpbT+4hQ2pwpWIgreA3+JQF+ytMMhVfXY+hbF/8AkQMWqyuxWGnwZiEgIQprW4aQpHIysOL+MoLu8xgFAtbDC1pey7b3FwW7qoDVU/j2Ok2jCpYsT9dmFCnFlqAFdNgmrr6aH/7ADQmNmQgsektce6XvIAOj47AqEPKZRUpHGLug88igoeDcrKvDcjhsP+YEBPdg"
    $sFileBin &= "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"
    $sFileBin &= "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"
    $sFileBin &= "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"
    $sFileBin &= "JjjFkss+xhT5Fv8AU6P/ABen8Tlj/wBpw/iLQFFod/8AE0NMTdt4i3+E5fLjz+yP+9hr+qdP9RvSJb35P+cEuEBbnkz/ABQ6/BqYoy4IEjfjH/66dnt9htux0qzWM3LCAQ3IBZNtDn8Gav7bDRrP/DeH8/8AgOH8mCnTA1+0QisNY6EwmCt/tAsQWnpACo8Z2/hib7Cbd5EoX8Jx/gj2FJS6CI1Cr/M9z/2/8f8A/9k="
    $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 ;==> _Person7Jpg ()

Another person to find !  ;)

Edited by wakillon
  • Like 1

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
wakillon

I think it's better suited for the amount of squares that is indicated on your OP screenshot.

 

Sorry i do not understand what you mean... :huh2:


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
wakillon

Just 16 squares.

 

Ok, at the top of the script change "Global $iPicNumber = 15^2" by "Global $iPicNumber = 4^2"

But it's too easy  :P

And for the Puzzle game i'm already working on it !

Can i see your version ?  :)


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • bhns
      By bhns
      try it for make flyers old games xml + Gdi, i belive many sources had lost 
      AIT-ADRLIST.au3

    • mdepot
      By mdepot
      I have a situation where I am repeatedly capturing a region of the screen and feeding it into Tesseract OCR.  Since the OCR is a relatively slow operation, I would like to create an in memory cache of the ocr results.  An ideal hash key for this cache would be a checksum of the captured image.  With this I could capture the region, checksum it, and then only if I don't get a cache hit I would write the image out to disk for external OCR.
      Now I know I can do this by saving the captured image out to disk, and then summing the disk file with _Crypt_HashFile().  But that's still slower than I would like, and it shouldn't be necessary.  Ideally, it should be possible to checksum the image data directly in memory so I don't have to go to disk at all.  In order to do that, I need a way to dump a representation of the image into a string  (or some equivalent).  Then I could use the _Crypt_HashData() function against that string to create my cache hash key.
      Googling around I found an article here that shows a way to convert an image object to a byte array using System.Drawing.  This was the closest thing I found to what I'm trying to do.  I don't know if that method could be used from within AutoIT, or if perhaps there may be a better way I don't know about.  If someone could give me a shove in the right direction it would be a big help.  Thanks!
    • UEZ
      By UEZ
      Here some graphical examples written completely in FreeBasic just for fun.  
      3D Starfield Rotating Flight 3D Starfield Scrolling v1 Booster 3D Starfield Scrolling v3 Booster CreateWindowEx (hGUI) Example FB File2Bas Code Generator (AutoIt script) FB GFX Examples Fire Particles FMOD Examples GDI - GDI+ 3D Sinus Wave GDI - GDI+ Animated Pythagoras Tree GDI - GDI+ Particles - Repulsive Force Sim v2.0 GDI - GDI+ Plasma v5 Booster GDI - GDI+ Random Pattern GDI - GDI+ Space Flight GDI - GDI+ Tunnel Flight - WipeOut Style GDI Classic Raytraced Tunnel GDI Elastic Twister Effect GDI Exploding Pixels GDI Infinite Image Zoom Flight GDI Liquid Pixels GDI Particle Repulsion Grid GDI Particles Mouse Attraction GDI Starfield GDI The Nautilus Raymarcher GDI Worm Tunnel Flight GDI+ Impossible Possible GDI+ Kaleidoscope GDI+ Performance Test - Au3 vs FB GDI+ Polar Clock GDI+ Rotating Earth GDI+ Star Wars Scroller GDI+ Streamer GDI+ Swiss Railway Clock Ini Read - Write Mandelbrot Plasma Puristic Clock Rutt_Etra_Izer_Booster Tunnel Flight uFMOD _WinAPI_SetWindowTitleIcon  
      Download: FreeBasic Examples build 2018-07-10.rar
       
      I will add new examples from time to time.
       
      FreeBasic source codes are also included.
       
    • Atoxis
      By Atoxis
      Howdy, I've gone through a lot of au3 forums, and I once had a working Imagesearch script that I got from here.  However, and i'm just totally not sure how but my imagesearch scripts aren't working anymore.
      I'm not new to au3 but i'm not the most experienced with it's syntax/commands.

      Anyways, I've looked over the big threads involving imagesearch.

      Does anyone have a working Imagesearch x64 for win10 that is currently working as of the date with the post.

      Dll's and what not is fine, just when I tell the script to run, I want to be able to find the image on the screen!
      Can't find a working copy so if anyone has one please send it my way lol.

      I've taken all the imagesearch downloads and what not and have played with them but I can't get any of them working on my end, despite others saying they're working.
      Thanks.
    • Xandy
      By Xandy
      MapIt is a tile world editor.  MapIt was built around the concept of reversing Dragon Warrior map images.  MapIt can take image input and produce a tile and world array.
      MapIt features Unity style dragable labels that adjust property values.

      MapParser is a C++ project that scans images for unique tiles.  MapParser is very fast.  Due to hard drive failure, many bugs were restored b/c I had to rewind many years.  Frustrated with the design, I wrote a new version from the ground up.  This New Version:  AutoIt Front-end, command line controls, and shared with the world; so that I can't lose it again.
      You can toggle the C++ MapParser off to see the difference in speeds between the MapParser CPP verse AutoIt function.  Function is named Scan_Tiles() in AutoIt.  You can also chose to download without MapParser.exe.
      At the moment Scanning a image resets the arrays, but you can add tiles after scanning.
      Images can be added as tiles without scan image at all.  Then configure settings to give your world parameters and manually fill the world data with tile indexes.
      Using the settings you can change tile size after a scan.  Example: you wanted to replace a map with different sized tiles.
      Changing and replacing tile / world data is easy.  B/c tile world editor.

      Hotkeys, I use CTRL+R in image above to signal replace tile action and I use "G" to Get the tile under mouse.
      Hotkeys are not saved to disk and thus are set to default between sessions.
      I might draw the world to pre-rendered surfaces and use them as multi-layer someday.  I do that in my AutoIt, DragonWarrior Remake but I could spend forever unsure what features are important for this.  The DW_Remake has a method of replacing a tile with a tile on two layers.  So you could replace a tree on the first layer with a grass, and a tree in the second layer.  This is all getting very confusing.
      I attempted to write the good code.  If something could be better, please advise.
      Fifth release.  Enjoy.
      For download, videos, and example of created world file data; please visit the MapIt webpage: http://songersoft.com/programming/mapit/mapit_about.phtml
      Special thanks: @AdmiralAlkex, @Melba23, @MrCreatoR
      Main AutoIt source file: Will not run without other Includes and SDL DLLs.
      Last Update: 5/26/2018 3:45 PM EST
      REMOVED CODE BLOCK:  I was informed the this page loaded very slowly, one solution so far has been to remove the 2k lines in the code block.
      When I recieve more feedback from the User I may reduce image size or remove images.
      Next Version Added: $eSETTING_TILE_LAST_PATH I have the weekend, I want to write world layers with aBoard surfaces.  
×