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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
 
			}
		}