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

    Salvare un immagine su hd

    public void salvaImmagine(){
    // 1 - Si deve creare prima di tutto un'immagine nuova:

    java.awt.Image im = this.createImage((int)masX,(int)masY);

    // 2 - Ottenuta l'immagine dobbiamo copiare al suo interno il contenuto del
    // component di cui vogliamo creare una istantanea. Per fare questo ci occorre
    // il contesto grafico dell'immagine:

    Graphics g = im.getGraphics();

    // 3 - A questo punto possiamo stampare il contenuto grafico del Component
    // nell'immagine

    this.printAll(g);
    try{
    ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("prova.jpg"));
    out.writeObject(im);
    out.flush();
    out.close();

    }catch(Exception e){
    e.printStackTrace();
    }
    }

    Vorrei fare questo ma ovviamente java.awt.Image non è serializzabile...e "this" corrisponde ad un ogetto che estende JPanel...sperando di non aver fatto idiozie come rendo funzionante questo copiaincolla selvaggio?

  2. #2
    ho risolto facendo così:

    public void salvaImmagine(){
    java.awt.Image im = this.createImage((int)masX+30,(int)masY+30);
    Graphics g = im.getGraphics();
    this.printAll(g);
    BufferedImage bi = new BufferedImage((int)(this.getAsseX()/**primoZoom*/)+50,(int)(getAsseY()/**primoZoom*/)+50,BufferedImage.TYPE_INT_RGB);
    java.awt.Graphics2D gg = bi.createGraphics();
    this.paint(gg);
    try{
    OutputStream out = new FileOutputStream(Saver.selectFolder());
    com.sun.image.codec.jpeg.JPEGImageEncoder encoder = com.sun.image.codec.jpeg.JPEGCodec.createJPEGEncod er(out);
    encoder.encode(bi);
    out.close();
    }
    catch(Exception e){
    System.out.println(e);
    }
    }

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.