Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    37

    problema sovrascrittura salvataggio caricamento immagine

    Ciao a tutti!
    Ho un grosso problema, che devo risolvere in modo urgente:
    Ho creato una servlet java che mi salva delle immagini in una cartella, dopo di che prende queste immagini una alla volta, le ridimensiona e le salva nuovamente con un' altro nome; questo ogni volta che la invoco.
    Alla seconda chiamata della servlet, se erano già presenti le immagini, allora nella prima fase salva sovrascrivendo le vecchie immagini, ma quando carica per ridimensionare, non carica la nuova immagine salvata ma carica l'immagine che c'era prima e modifica pertanto un'immagine che a me non interessa più.

    Spero di essere stato chiaro.
    Aspetto vostre notizie. grazie. :-)

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

    Re: problema sovrascrittura salvataggio caricamento immagine

    Originariamente inviato da vanno88
    Ho creato una servlet java che mi salva delle immagini in una cartella, dopo di che prende queste immagini una alla volta, le ridimensiona e le salva nuovamente con un' altro nome; questo ogni volta che la invoco.
    Alla seconda chiamata della servlet, se erano già presenti le immagini, allora nella prima fase salva sovrascrivendo le vecchie immagini, ma quando carica per ridimensionare, non carica la nuova immagine salvata ma carica l'immagine che c'era prima e modifica pertanto un'immagine che a me non interessa più.
    Chiarissimo proprio non lo è ma si intuisce cosa succede. La questione è: quale API, intendo proprio quale/i classi/metodi hai usato per il caricamento delle immagini?

    Io ho una sensazione: che viene usato (direttamente o indirettamente) il getImage() di Toolkit. Questo metodo usa un "caching" delle immagini, a parità di filename/url si (ri)ottiene lo stesso oggetto Image.

    Usa il createImage() o un'altra API (es. la ImageIO).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    37
    per il salvataggio uso: ImageIO.write(......);
    però per il caricamento faccio questo:
    File tempFile=new File(targetDirPath+targetFileName);
    OutputStream tmp = new FileOutputStream(tempFile);

    Image image = new ImageIcon(sourcePath).getImage(); // dici che il problema sia qui???
    BufferedImage outImage =toBufferedImage(image);
    BufferedImage img=outImage.getSubimage(x,y,w,h);
    ImageIO.write((RenderedImage)img,"GIF",tempFile);
    tmp.close();

    dici che il problema sta proprio qui????

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da vanno88
    Image image = new ImageIcon(sourcePath).getImage(); // dici che il problema sia qui???
    Sì!!!! ImageIcon usa il getImage di Toolkit! (ad eccezione dei ImageIcon(byte[] ..... ) che usano il createImage, ma perché non c'è un getImage che accetta byte[] !)

    P.S. ho doti di veggenza ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    37
    Scusa la mia ignoranza ma come posso in altro modo caricare un'immagine?


    ho modificato in questo modo:

    File tempFile=new File(targetDirPath+targetFileName);
    //OutputStream tmp = new FileOutputStream(tempFile);
    //Image image = new ImageIcon(sourcePath).getImage();
    Image image = ImageIO.read(new File(sourcePath));
    BufferedImage outImage =toBufferedImage(image);
    BufferedImage img=outImage.getSubimage(x,y,w,h);
    ImageIO.write((RenderedImage)img,"GIF",tempFile);
    //tmp.close();

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da vanno88
    Scusa la mia ignoranza ma come posso in altro modo caricare un'immagine?
    Con createImage di Toolkit o con la read() di ImageIO.


    Originariamente inviato da vanno88
    Image image = ImageIO.read(new File(sourcePath));
    BufferedImage outImage =toBufferedImage(image);
    read() fornisce già un BufferedImage, quindi non c'è bisogno di una "conversione" con quel tuo toBufferedImage.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    37
    Grazie mille cosi funzionaaaaaaa!!!!!!
    MI SEI STATO DI GRANDE AIUTO.......

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.