
deck_bsd
|
Ben cela ne fonctionne pas, aparement je récupère bien les pixel des deux images, mais lors de la comparaison si j'en change un il me dit quand mm que les images sont identiques :s . Voici comment je fait en gros :
/* image 1. */ HBITMAP hBmp = LoadImage(GlobalHInstance,"signature.bmp",IMAGE_BITMAP,100,160,LR_LOADFROMFILE); HANDLE haFile = CreateFile("signature.bmp",GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(haFile == INVALID_HANDLE_VALUE)MessageBox(hwnd,"fuck off","rated",MB_OK); DWORD dwSize = GetFileSize(haFile,NULL); CloseHandle(haFile); iTabPixel = (char*) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwSize); if(GetBitmapBits(hBmp,dwSize,iTabPixel) == 0)MessageBox(hwnd,"GetBitmapBits()","error",MB_OK); /* image 2. */ HBITMAP hBmp2 = LoadImage(GlobalHInstance,"signature2.bmp",IMAGE_BITMAP,100,160,LR_LOADFROMFILE); HANDLE haFile2 = CreateFile("signature2.bmp",GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(haFile2 == INVALID_HANDLE_VALUE)MessageBox(hwnd,"fuck off","rated",MB_OK); DWORD dwSize2 = GetFileSize(haFile2,NULL); CloseHandle(haFile2); iTabPixel_2 = (char*) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwSize2); if(GetBitmapBits(hBmp2,dwSize2,iTabPixel_2) == 0)MessageBox(hwnd,"GetBitmapBits()","error 2",MB_OK); //if(dwSize != dwSize2)MessageBox(hwnd,"Differents sizes","error",MB_OK); //else{ int x,y; for(x = 0 , y = 0; x < dwSize ,y < dwSize2 ; x++ , y++){ if((iTabPixel[x] != iTabPixel_2[y])){ MessageBox(hwnd,"Not same","not",MB_OK); break;} } MessageBox(hwnd,"same","OK",MB_OK); //}
HeapFree(GetProcessHeap(),0,iTabPixel); HeapFree(GetProcessHeap(),0,iTabPixel_2);
Merci d'avance.
|