[Question] Chargement d'objets comportant des images et gestion mémoire

Signaler
Messages postés
1
Date d'inscription
mardi 14 septembre 2010
Statut
Membre
Dernière intervention
18 septembre 2010
-
Messages postés
7572
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
-
Bonjour !

Je me permet de venir poser ma question sur ce forum car je reste bloqué depuis quelques temps sur un problème auquel peut être pourriez-vous apporter des solutions.

Je m'explique :

J'ai créé une application en VB.Net qui manipule en même temps environ 3000 images d'un format assez réduit (heureusement). J'avais je pense deux solutions pour gérer ces images :
1) charger ces images du disque a chaque fois que j'en ai besoin (très efficace pour la mémoire mais horrible pour les performances)
2) charger toutes les images en mémoire et permettre ainsi une application beaucoup plus fluide.

Dans les deux cas, je ne manipule pas des images directement mais des objets qui contiennent (dans le cas 1) le chemin de l'image a charger, dans le cas 2) directement l'image chargée)

Après avoir essayé les deux, j'ai fini par opter pour la seconde, malheureusement, au détriment de la mémoire utilisé par mon application.

Après avoir optimisé le maximum de chose, mon application consomme 650 Mo de mémoire pour les 3000 images gérés en même temps.

L'ennui, c'est que mon dossier contenant les 3000 images fait environ 150 Mo sur le disque, et qu'une fois en mémoire mon application fait un bond de 600+ Mo.
Ma question est simple, peut-on (et si oui comment) forcer l'application a charger une image d'une taille mémoire bien précise (quitte a perdre en qualité) ? Peut on utiliser une DLL qui permettrait peut-être de faire des traitements d'image au chargement pour les optimiser un peu ? Bref, que me conseillez-vous :)

Je vous remercie d'avance !

2 réponses

Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Statut
Membre
Dernière intervention
18 mai 2016

Bonjour,

Il est possible que le bond est dû au fait qu'une image compressée est décompressée en mémoire.

Stéphane
Messages postés
7572
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
127
Bonjour,
Il faudrait voir avec cette dll:
ThumbExtract.dll
et voir ce code:
http://www.vbfrance.com/codes/NET-EXTRACTION-MINIATURES-FICHIERS-COMME-DANS-EXPLORATEUR-MODE_41631.aspx
Je l'ai utilisée dans mon dernier programme:
Diaporama_drag_and_drop et le chargement des images est divisé par 4
http://www.vbfrance.com/codes/DIAPORAMA_DRAG_AND_DROP_52486.aspx
Vois si tu peux l'adapter à ton programme
@+ Le Pivert