[QT/C++] pb de load de grosses images en cache ( qCache & qPixmap )

pb de load de grosses images en cache ( qCache & qPixmap ) [QT/C++] - C++ - Programmation

Marsh Posté le 30-04-2004 à 14:18:35    

En gros je charge des images de grande dimentions, jusqu'a 3040x2008 ca va, je peux en avoir 3-4 en mémoire (je les stoque dans un qCache).
Mais avec des images de 4080x4078 je ne peux en garder qu'une en mémoire, juste apres le load de la seconde image qui se passe bien, l'image disparait de la memoire (taille 0x0). Je suis alors obligé de vider l'image précédente en cache, pour pouvoir charger la nouvelle.
Le programme semble avoir une limite de cache et fait le menage tout seul, et ce n'est pas à cause du qCache que je configure correctement. J'ai 1Go de ram sur la machine sur laquelle je suis donc c pas ca le pb.

Reply

Marsh Posté le 30-04-2004 à 14:18:35   

Reply

Marsh Posté le 30-04-2004 à 15:02:44    

j'ai simplifié le pb à ca.
La premiere image se charge correctement mais pas la seconde (alors que c la meme.).

Code :
  1. #include <qapplication.h>
  2. #include <qpixmap.h>
  3. int main( int argc, char** argv )
  4. {
  5. QApplication app( argc, argv );
  6. QPixmap* p1=new QPixmap(4080,4078,16);
  7. QPixmap* p2=new QPixmap(4080,4078,16);
  8. p1->load("MNC_25809_006.ppm" );
  9. p2->load("MNC_25809_006.ppm" );
  10. //at this point p1 is ok, p2 is null
  11. delete p1;
  12. delete p2;
  13. .......
  14. }


Message édité par Roswell_ le 30-04-2004 à 15:13:58
Reply

Marsh Posté le 30-04-2004 à 18:16:50    

Apparemment, c'est un problem de plateforme, qpixmap est dépendant de la plateforme, et sous windows, il y aurait une limite. Tout ce que je peux faire c'est utiliser des QImage (qui dépend pas de la plateforme) et les convertir au moment opportun en qpixmap, mais ca devrait pas mal ralentir mon application entiere.

Reply

Marsh Posté le 30-04-2004 à 21:51:01    

J'ai recopié ton code qui fonctionne très bien sur ma machine (XP). De toute façon si p2 est null c'est un problème pendant le new QPixmap et non dans le load.
webmestre du site français de la programmation Qt : http://prog.qt.free.fr


Message édité par progqt le 30-04-2004 à 21:51:54
Reply

Marsh Posté le 12-05-2004 à 14:56:58    

Non, en fait je me suis mal exprimé quand je disais que p2 était null, c'est que p2->isNull() est true (l'image a une dimention de 0x0).
Je suis sous 2000 avec QT 3.2.2.

Reply

Marsh Posté le 12-05-2004 à 15:11:44    

T'as essayé en changeant le nom ?

Reply

Marsh Posté le 12-05-2004 à 15:38:08    

Le nom de quoi?

Reply

Marsh Posté le 12-05-2004 à 15:41:46    

créés 2 fichiers.

Reply

Marsh Posté le 12-05-2004 à 15:54:31    

J'ai essayé avec d'autres fichiers de la meme taille.
p1 a une taille correct.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed