JPanel als JPEG speichern



  • Hallo,
    ich würde gerne den Inhalt eines JPanels als JPEG speichern. So kommt immer nur ein graues Bild heraus:

    int tmpPanelWidth  = getWidth();
    int tmpPanelheight = getHeight();
    
    BufferedImage tmpBufferedImage = (BufferedImage)createImage(tmpPanelWidth, tmpPanelheight);
    
    try {
    	FileOutputStream fos = new FileOutputStream("out.jpg");
    	JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
    	jpeg.encode(tmpBufferedImage);
    	fos.close();
    } catch(Exception tmpException){
    	tmpException.printStackTrace();
    }
    

    Nebenbei: Die Größe des JPanels wird richtig ausgelesen.
    Das JPanel beinhaltet im BorderLayout.CENTER-Feld einen JGraph und sitzt insgesamt in einem JScrollPane.

    Vielen Dank



  • Sorry, hat sich schon erübrigt. so gehts:

    BufferedImage tmpBufferedImage = new BufferedImage(tmpPanelWidth, tmpPanelheight, BufferedImage.TYPE_INT_RGB);
    paint(tmpBufferedImage.getGraphics());
    

Anmelden zum Antworten