wakillon Posted March 24, 2014 Share Posted March 24, 2014 (edited) ImageSplitter v1.0.0.7 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 February 3, 2016 by wakillon JohnOne, madzero, PlayHD and 1 other 4 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 March 24, 2014 Share Posted March 24, 2014 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!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
wakillon Posted March 24, 2014 Author Share Posted March 24, 2014 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.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
UEZ Posted March 24, 2014 Share Posted March 24, 2014 (edited) 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 March 24, 2014 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...
wakillon Posted March 24, 2014 Author Share Posted March 24, 2014 (edited) Hum...do you mean like coordinates ? edit : for easily re place them ? Edited March 24, 2014 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 March 24, 2014 Share Posted March 24, 2014 (edited) 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 March 24, 2014 by UEZ Danyfirex 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 March 24, 2014 Author Share Posted March 24, 2014 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 ! 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.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
Danyfirex Posted March 24, 2014 Share Posted March 24, 2014 Really Usefull I think UEZ's idea is good. really Fast 551 parts about 10 seconds. Thanks nice share. Saludos Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut Link to comment Share on other sites More sharing options...
wakillon Posted March 24, 2014 Author Share Posted March 24, 2014 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 ! Danyfirex 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...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 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.0 - WIN 8.1 X64 - Other Example Scripts Link to comment Share on other sites More sharing options...
JohnOne Posted March 25, 2014 Share Posted March 25, 2014 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. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 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 ? 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...
JohnOne Posted March 25, 2014 Share Posted March 25, 2014 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. Link to comment Share on other sites More sharing options...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 (edited) 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 ? expandcollapse popup#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 March 25, 2014 by wakillon JohnOne 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...
JohnOne Posted March 25, 2014 Share Posted March 25, 2014 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. Link to comment Share on other sites More sharing options...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 (edited) Did you find who is hidden ? Here is another version adapted to most picture dimension : expandcollapse popup#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 &= "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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 &= "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 March 25, 2014 by wakillon JohnOne 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...
JohnOne Posted March 25, 2014 Share Posted March 25, 2014 I think it's better suited for the amount of squares that is indicated on your OP screenshot. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 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... 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...
JohnOne Posted March 25, 2014 Share Posted March 25, 2014 Just 16 squares. AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Link to comment Share on other sites More sharing options...
wakillon Posted March 25, 2014 Author Share Posted March 25, 2014 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 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.0 - WIN 8.1 X64 - Other Example Scripts 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