1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
inStream = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
//j'ouvre mon fichier en lecture
//je lis l'entête je calcule la aille de mon image
//j'alloue de la mémoire
//...........
// initialiser le pointeur du buffer ou on stocke les pixels lus
framePtr = frameBuffer;
//parcourire le fichier
for (l = 0;l < (int)nlIcon;l++)
{
for (k = 0;k < (int)ncIcon; k++)
{
ligne = (float)l * lpasH;
colonne = (float)k * lpasH;
// calculer la distance de décalage
distance = (LONG)(floorf(ligne)* (float)ncImg + floorf(colonne)) * octetsParPixel ;
decal = distance - distance_old;
// recuperer l'anciene distance
distance_old = distance + octetsParPixel;
// positionner le pointeur sur le pixel à lire
SetFilePointer(inStream, decal, NULL, FILE_CURRENT);
// lire le pixel
ReadFile(inStream, framePtr, octetsParPixel, &bytesRead, NULL);
// incrementer le pointeur du buffer
framePtr += octetsParPixel;
}
} |
Partager