optimiser lecture fichier image
Bonjour, je d�veloppe une application qui lit des images m�dicales et renvoie leurs miniatures. La taille d'une image est 3000x3000 pix. et celle de d'une ic�ne 96x96 pix. donc je lis mon fichier avec un pas d'�chantillonnage 3000/96 .Le probl�me c'est que c'est trop lent, sur un r�pertoire de 160 images 2 min. Je me demande est ce que c'est l'acc�s au disque ou je n'utilise pas les bonne fonction?
Voici mon code:
Code:
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;
}
} |