Code:
#include <GDIPlus.au3> ;=============================== Global $1,$2,$3,$4,$5 ;=========================================== _GDIPlus_Startup() ;=========compare with=================== $fname1 = @ScriptDir & "\c1.bmp" $fname2 = @ScriptDir & "\c2.bmp" $fname3 = @ScriptDir & "\c3.bmp" $fname4 = @ScriptDir & "\c4.bmp" $fname5 = @ScriptDir & "\c5.bmp" $fname6 = @ScriptDir & "\c6.bmp" $fname7 = @ScriptDir & "\c7.bmp" $fname8 = @ScriptDir & "\c8.bmp" $fname9 = @ScriptDir & "\c9.bmp" $fname10 = @ScriptDir & "\c0.bmp" ;=========compare with=================== $bm1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\1.bmp") wHILE 1 ;$1 $bm2 = _GDIPlus_ImageLoadFromFile($fname1) iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname2) CompareBitmaps($bm1, $bm2) Elseif CompareBitmaps($bm1, $bm2) = True Then $1 = "1" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname3) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "2" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname4) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "3" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname5) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "4" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname6) CompareBitmaps($bm1, $bm2); ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "5" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname7) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "6" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname8) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "7" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname9) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "8" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname10) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $1 = "9" ExitLoop Endif ; If CompareBitmaps($bm1, $bm2) = True Then $1 = "0" ExitLoop Endif weND ;=====================================================SECOND CHECK======================================== $bm1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\2.bmp") wHILE 1 ;$2 $bm2 = _GDIPlus_ImageLoadFromFile($fname1) iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname2) CompareBitmaps($bm1, $bm2) Elseif CompareBitmaps($bm1, $bm2) = True Then $2 = "1" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname3) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "2" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname4) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "3" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname5) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "4" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname6) CompareBitmaps($bm1, $bm2); ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "5" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname7) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "6" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname8) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "7" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname9) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "8" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname10) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $2 = "9" ExitLoop Endif If CompareBitmaps($bm1, $bm2) = True Then $2 = "0" ExitLoop Endif weND ;====================================================Third======================================== $bm1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\3.bmp") wHILE 1 ;$3 $bm2 = _GDIPlus_ImageLoadFromFile($fname1) iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname2) CompareBitmaps($bm1, $bm2) Elseif CompareBitmaps($bm1, $bm2) = True Then $3 = "1" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname3) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "2" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname4) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "3" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname5) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "4" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname6) CompareBitmaps($bm1, $bm2); ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "5" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname7) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "6" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname8) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "7" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname9) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "8" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname10) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $3 = "9" ExitLoop Endif If CompareBitmaps($bm1, $bm2) = True Then $3 = "0" ExitLoop Endif weND ;=======================================fourth===================================== $bm1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\4.bmp") wHILE 1 ;$4 $bm2 = _GDIPlus_ImageLoadFromFile($fname1) iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname2) CompareBitmaps($bm1, $bm2) Elseif CompareBitmaps($bm1, $bm2) = True Then $4 = "1" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname3) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "2" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname4) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "3" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname5) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "4" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname6) CompareBitmaps($bm1, $bm2); ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "5" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname7) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "6" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname8) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "7" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname9) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "8" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname10) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $4 = "9" ExitLoop Endif If CompareBitmaps($bm1, $bm2) = True Then $4 = "0" ExitLoop Endif weND ;=======================================FIFTH===================================== $bm1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\5.bmp") wHILE 1 ;$5 $bm2 = _GDIPlus_ImageLoadFromFile($fname1) iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname2) CompareBitmaps($bm1, $bm2) Elseif CompareBitmaps($bm1, $bm2) = True Then $5 = "1" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname3) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "2" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname4) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "3" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname5) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "4" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname6) CompareBitmaps($bm1, $bm2); ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "5" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname7) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "6" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname8) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "7" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname9) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "8" ExitLoop Endif ; iF CompareBitmaps($bm1, $bm2) = False then $bm2 = _GDIPlus_ImageLoadFromFile($fname10) CompareBitmaps($bm1, $bm2) ElseIf CompareBitmaps($bm1, $bm2) = True Then $5 = "9" ExitLoop Endif If CompareBitmaps($bm1, $bm2) = True Then $5 = "0" ExitLoop Endif weND _GDIPlus_ImageDispose($bm1) _GDIPlus_ImageDispose($bm2) _GDIPlus_Shutdown() Func CompareBitmaps($bm1, $bm2) $Bm1W = _GDIPlus_ImageGetWidth($bm1) $Bm1H = _GDIPlus_ImageGetHeight($bm1) $BitmapData1 = _GDIPlus_BitmapLockBits($bm1, 0, 0, $Bm1W, $Bm1H, $GDIP_ILMREAD, $GDIP_PXF32RGB) $Stride = DllStructGetData($BitmapData1, "Stride") $Scan0 = DllStructGetData($BitmapData1, "Scan0") $ptr1 = $Scan0 $size1 = ($Bm1H - 1) * $Stride + ($Bm1W - 1) * 4 $Bm2W = _GDIPlus_ImageGetWidth($bm2) $Bm2H = _GDIPlus_ImageGetHeight($bm2) $BitmapData2 = _GDIPlus_BitmapLockBits($bm2, 0, 0, $Bm2W, $Bm2H, $GDIP_ILMREAD, $GDIP_PXF32RGB) $Stride = DllStructGetData($BitmapData2, "Stride") $Scan0 = DllStructGetData($BitmapData2, "Scan0") $ptr2 = $Scan0 $size2 = ($Bm2H - 1) * $Stride + ($Bm2W - 1) * 4 $smallest = $size1 If $size2 < $smallest Then $smallest = $size2 $call = DllCall("msvcrt.dll", "int:cdecl", "memcmp", "ptr", $ptr1, "ptr", $ptr2, "int", $smallest) _GDIPlus_BitmapUnlockBits($bm1, $BitmapData1) _GDIPlus_BitmapUnlockBits($bm2, $BitmapData2) Return ($call[0]=0) EndFunc