Bonjour,
J'ai une application Java qui manipule une image PNG de taille importante: 9807*6867 pixels pour un peu moins de 3Mo. L'image est scrollable et elle est contenue dans un JLabel lui-même dans un JScrollPane. Le problème c'est que manipuler une image aussi grande c'est quand même assez lourd, donc lors des déplacements ou des zooms, l'appli pédale un peu
Ce que je voudrais c'est pouvoir décomposer cette image de façon à ne charger et afficher que la partie visible dans le panel. Ainsi lors des déplacement via les barres de scroll on chargerait et afficherait une image plus petite qui correspond à la zone à afficher de la grande image.
J'ai essayer avec un BufferedImage mais d'après ce que j'ai compris il faut quand même charger l'image complète au départ. De plus en créant un buffer pour une image aussi grande on arrive vite à une exception Heap Space Out Of Memory.
J'ai aussi regardé du côté de l'api JAI mais j'ai rien trouvé pour décomposer l'image.
Donc voila, j'aimerais savoir si il existe une solution en Java pour manipuler plus efficacement ce genre d'image ? Les charger par parties ou pour les découper ?
Sinon j'ai aussi pensé à découper directement l'image avec un logiciel style Photoshop pour créer plusieurs dizaines d'images avec une taille plus petite puis toutes les stocker dans un tableau. Mais au niveau de l'application est ce que ce sera vraiment plus léger pour elle de travailler avec pleins de petites images plutôt qu'avec une seule grande image ?
Merci d'avance pour vos réponses !
Partager