Se connecter avec
S'enregistrer | Connectez-vous

FreeImage liberation memoire

Dernière réponse : dans Programmation

Bonjour,

J'utilise la librairie FreeImage dans mon prog sous Borland C++, et disposan de plusieur images, je les ai mise dans un tableau declarer comme ceci :

  1. FIBITMAP **tabImage;
  2. tabImage=new FIBITMAP *[nbImages];



je charge mes image ensuite comme cela :
  1. tabImage[i] = FreeImage_Load(FIF_JPEG, ListeFichiers->Strings[i].c_str(), JPEG_DEFAULT);

comme j'ai beaucoup d'images qui se stockent en memoire cela me prend enormement de place en memoire plus de 500 mo suivant les images de depart.Par consequent, il faut que je libere la mémoire a la fin, c la ou est le problème.
J'ai beau faire :
  1. for(size_t i=0; i<nbImages; ++i)
  2. FreeImage_Unload(tabImage[i]);
  3. delete [] tabImage;


J'ai toujours autant de memoire utilisé. Comme je voudrai utiliser le programme plusieur fois a la suite sans quitter pouis relancer, il faudrai un moyen de liberer corectement la memoire car une fois que toute la memoire est utilisé , le prog swappe et ca ralenti les perf....


Merci de votre aide!

Autres pages sur : freeimage liberation memoire

Lassé par la pub ? Créez un compte

slt ,
En faite c bon j'ai trouver, l'erreur ne venai pas de la en faite.
Apres je faisait une conversion de bmp en JPG donc j'utilisais la fonction de freeImage FreeImage_ConvertTo24Bits de la maniere suivante :
Image = FreeImage_ConvertTo24Bits(Image);

Et c a cause de ca que ca prenais tout en memoire , j'ai donc passer par un dib intermediaire de la sorte :
Image = FreeImage_ConvertTo24Bits(ImageSortie);

Et c bon, ca marche !!

Merci quand meme.
Lassé par la pub ? Créez un compte