Bonjour tout le monde,
Voila, j'ai deux problèmes avec l'utilisation de BufferedImage.
Premièrement, lorsque je veux charger une grosse image de 3500x2500 par exemple, j'ai un "OutOfMemory Exception" lors de l'initialisation du BufferedImage.
Sachant qu'avant l'ouverture du fichier, le programme lance juste une interface graphique assez simple, avec quelques miniatures.
Si la JVM a 64Mo par défaut, c'est amplement suffisant pour les 3500x2500x3 = 26Mo de l'image, non ?
Est-ce normal ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Je sais qu'on peut étendre la mémoire allouée par la VM. Si je l'étends à 512Mo , je n'ai plus le probleme de dépassement de mémoire.
Par contre, lorsque je veux afficher mon image dans un jPanel en redéfinissant la fonction PaintComponent, l'image est affichée 1/4 de seconde (premier passage dans Paint()), puis après n'est plus dessinée (on ne voit que le gris de fond).
La fonction passe pourtant toujours bien sur le DrawImage lors d'un repaint et il n'y a pas ce genre de problème pour les images de plus petite taille (celles qui passaient sans étendre la mémoire).
La seule "solution" que j'ai trouvé, c'est d'executer ceci :
lors de l'initialisation du panel. Cela a résolu mon problème mais ne me semble pas logique !
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Merci d'avance !

 

 
		
		 
        

 
			
			



 Probleme avec BufferedImage
 Probleme avec BufferedImage
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
			 
   
 
 
				


 
			 
  
 Envoyé par dinobogan
 Envoyé par dinobogan
					
 
						
 
  
 
 
			 quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
 quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes. suivez
 suivez 
Partager