Le script fonctionne bien mais est beaucoup trop long a s'executer, j'aurai donc besoin de conseil pour l'optimiser si c'est possible.
Le script ouvre 2 images (1280 par 800 ) et fait une comparaison pixel par pixel. j'utilise pour ça la fonction GDIPlus_BitmapGetPixel trouvé sur votre forum et bien utile, bravo au concepteur. Actuelement le code mais au mois 5mn opour comparer 2 images sur ma machine.
Voici le code:
Code : Tout sélectionner
_GDIPlus_Startup()
$image1 = _GDIPlus_ImageLoadFromFile("test01.jpg")
$image2 = _GDIPlus_ImageLoadFromFile("test02.jpg")
for $coordx = 1 to 1280
for $coordy = 1 to 800
$color1 = GDIPlus_BitmapGetPixel($image1,$coordx,$coordy)
$color2 = GDIPlus_BitmapGetPixel($image2,$coordx,$coordy)
;~ if $color1 <> $color2 then msgbox(4096,"","pixels differents : " & $coordx & "|" & $coordy )
Next
;indicateur de vitesse
TrayTip("","Indicateur : " & $coordx, 1)
Next
_GDIPlus_ImageDispose($image1)
_GDIPlus_ImageDispose($image2)
_GDIPlus_Shutdown()
Func GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)
Local $tArgb, $pArgb, $aRet
$tArgb = DllStructCreate("dword Argb")
$pArgb = DllStructGetPtr($tArgb)
$aRet = DllCall($ghGDIPDll, "int", "GdipBitmapGetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "ptr", $pArgb)
Return "0x" & Hex(DllStructGetData($tArgb, "Argb"))
EndFunc ;==>GDIPlus_BitmapGetPixel