Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [JAVA SWING] visualizzare immagini mooolto "pesanti"

    Salve, devo visualizzare immagini molto pensanti (anche di 20 mb) con risoluzione a 300 dpi e nn posso diminuire la risoluzione perche mi serve.
    ho provato a caricare l'immagine come icona di una Jlabel ma nn me la visualizza (con immagini "+ leggere" si)

    Ho cercato in giro e ho visto che sun mette a disposizione JAI (Java Advanced Imaging)
    qlkn di voi l'ha mai usato?
    avete altre proposte?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA SWING] visualizzare immagini mooolto "pesanti"

    Originariamente inviato da ermeglio20
    ho provato a caricare l'immagine come icona di una Jlabel ma nn me la visualizza (con immagini "+ leggere" si)
    Non la visualizza perché lancia una qualche eccezione??? Provo a indovinare .... OutOfMemoryError??. Se è così è solo questione di aumentare la dimensione massima del "heap" (generalmente il massimo di default è 64MB).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    no, nn lancia nessuna eccezione, rimane solo grigia e nn carica neanche la jscrollpane che contiene la label
    di JAI non ne sai nulla? è uno strumento molto avanzato e siccome non so di che tipo e che dimensione dovranno essere le immagini non può essere un vincolo alla mia piccola applicazione quindi cmq mi serve qlks di + potente;
    tnx cmq

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ermeglio20
    no, nn lancia nessuna eccezione, rimane solo grigia e nn carica neanche la jscrollpane che contiene la label
    quindi cmq mi serve qlks di + potente;
    Qui non è questione di "potenza" ..... innanzitutto in che formato è la tua immagine (gif? jpeg? altro?)??? E con quale classe/metodo l'hai caricata? Tramite Toolkit? Tramite ImageIO?

    Per la cronaca: ho appena provato adesso a caricare una immagine abbastanza grande: 4,81 MByte con 6143x4608 pixel. Risultato ....

    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

    Ovviamente .... basta fare 2 calcoli: 6143x4608x4 (1 pixel in memoria è 1 int) = 113227776 bytes (circa 108 MB).

    Se lancio specificando un heap di 128MB con: java -Xmx128M ....blabla....

    La carico e visualizzo tranquillamente avendola caricata con ImageIO, poi messa in un ImageIcon e poi in un JLabel dentro un JScrollPane!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    capisco quello che dici, ma se mi arriva una jpg o bmp da 20 mb?

    ImageIcon icon = new ImageIcon("url");
    JLabelImage jLabel = new JLabelImage(icon);
    this.jScrollPaneImage.setViewportView(jLabel);

  6. #6
    Ho risolto (almeno per adesso)
    sto usando le librerie JAI e JAI_IO

    http://java.sun.com/javase/technolog...top/media/jai/

    il codice è:

    PlanarImage image= null;
    try {
    image = JAI.create("url", new URL("file:miaimmagine.jpg"));
    } catch (MalformedURLException ex) {

    }

    MyDisplayJAI dj = new MyDisplayJAI(image); // MyDisplayJAI extends DisplayJAI
    this.jScrollPaneImage.setViewportView(dj);

    Spero possa servire a qlkn
    per adesso vi saluto e grazie ancora andbin

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.