J'ai un problème étrange, essentiellement en Java Graphics.drawImage() est extrêmement lent sur certains ordinateurs et plus rapide sur d'autres. Ce n'est pas lié à la puissance des ordinateurs non plus, certains ordinateurs plus faibles fonctionnent bien alors que d'autres plus puissants semblent s'étrangler à l'appel drawImage.Graphics.drawImage() en Java est extrêmement lent sur certains ordinateurs et beaucoup plus rapide sur d'autres
Il peut ou non être lié à la largeur et la hauteur, j'ai une très, très grande largeur et la hauteur définie (quelque chose comme 5000 par 2500). Je ne pense pas que ce soit le problème, sauf comme je l'ai dit, il fonctionne en temps réel sur certains ordinateurs et plus lent sur d'autres et ne semble pas être lié à la puissance relative des ordinateurs.
Les deux ordinateurs ont la même version de Java, les deux utilisent Vista. On a un Core 2 Duo de 1,83 ghz avec 1 Go de RAM et des graphiques embarqués (tout fonctionne bien), l'autre a un core 2 de 2,53 ghz avec un 9600GS (les derniers pilotes nVidia) et 4 Go de RAM et il fait littéralement appel à l'appel drawImage.
Des idées?
edit: ok c'est vraiment bizarre, je dessine l'image dans une fenêtre de Swing, maintenant quand je redimensionne la fenêtre et la rend vraiment petite, l'image est réduite et elle devient petite. Soudain, tout se passe bien, quand je le redimensionne à la taille qu'il était avant qu'il ne fonctionne encore en douceur! Il a également plusieurs problèmes de moniteur, si je fais l'astuce de redimensionnement pour le faire fonctionner plus rapidement sur un moniteur, puis le faire défiler sur un autre moniteur lorsque plus de la moitié de la fenêtre est dans le nouveau moniteur. Je dois redimensionner la fenêtre pour la redimensionner puis la ramener à sa taille d'origine pour récupérer la vitesse.
Si je fais le tour de redimensionnement sur un écran, déplacez-le vers l'autre il de Chugs de cours, mais si je retourne revenir à l'écran d'origine sur lequel je l'ai fait le tour de Redimensionner cela fonctionne 100%
Si j'ai deux fenêtres pivotantes ouvertes (affichant la même image), elles fonctionnent toutes deux lentement, mais si je fais l'opération de redimensionnement sur une fenêtre, elles se déroulent toutes deux en douceur (mais ce n'est pas toujours le cas).
* quand je dis redimensionner la fenêtre, je veux dire le rendre aussi petit que possible au point où l'image ne peut pas être réellement vu.
Serait-ce un bug dans Java peut-être?
Quel genre d'image est, et quelles versions du JDK sont sur les ordinateurs? –
Je pense que je vois le même problème.C'est JDK 8 sur XP (ouais je sais) et un écran Hi-Color. Il faut quelques secondes pour rendre une image bufferedImage contenant une capture d'écran en plein écran - mais seulement la seconde (!) Fois que le composant est dessiné. Les appels suivants à drawImage sont à nouveau instantanés. Peut-être que la conversion a lieu en interne? Tout à fait déroutant dans l'ensemble, et pas vraiment acceptable qu'une simple conversion de couleur prend autant de temps (si c'est la raison). –