Bonjour, je développe actuellement un petit soft java en 2D.

Graphiquement, je me sert de multiple sprite que j'affiche à l'écran, en les superposant les uns sur les autres.
Ca donne un nombre de sprite important; or le problème ne vient pas le l'affichage (vitesse correcte et aucun clipping), mais de la taille mémoire engendré.

Effectivement, j'ai comme l'impression que java "décompresse" les images en mémoire. Ce qui fait qu'un fichier gif de 50 ko devient en mémoire une bufferedImage de 1Mo.

Certes, l'Api Java spécifie qu'une bufferedImage est en réalité constitué de deux images, l'image "mémoire" et l'image "affichable". N'empêche que dans ce cas, la bufferedImage devrait prendre 100Ko... Je m'interroge.

J'ai donc par la suite essayé de passer directement par l'objet Canvas, qui permet de n'utilisé qu'une image, celle affichable. On y gagne donc 50%, ce qui fait quand même 500ko...

Même ainsi, mon programme utilise près de 100Mo de mémoire pour des images qui, sur le disque, en prennent à peine 5. (Précisons que je suis obligé de les garder en mémoire, je ne peut pas faire de l'accès disque ad vitam)

Si quelqu'un a une idée, elle sera bienvenue.

Neige
www.neonym-rpg.org