title image


Smiley Re: Inhalt eines Panel in einem Bild speichern
Hi



Die Frage war schonmal hier. Ich hab damals das hier geschrieben - ich poste das mal ohne weitere Kommentare, wenn noch Fragen sind, sag bescheid.





import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import com.sun.image.codec.jpeg.*;

import java.awt.image.BufferedImage;



class SaveComponent extends JFrame implements ActionListener {



public static void main(String args[]) {

SaveComponent s = new SaveComponent();

}





JPanel jpanel;





// Erstelle Frame, der nur das JPanel enthält

public SaveComponent() {

setSize(300,300);

setDefaultCloseOperation(EXIT_ON_CLOSE);

jpanel = new JPanel();

JButton b = new JButton("Save me!");

b.addActionListener(this);

jpanel.add(b);

getContentPane().add(jpanel);

setVisible(true);

repaint();

}





public void actionPerformed(ActionEvent e) {



String fileName = "SaveComponent.jpg";

float quality = 0.9f;



// Erstelle ein BufferedImage

int w = jpanel.getWidth();

int h = jpanel.getHeight();

BufferedImage bi = new BufferedImage(w,h, BufferedImage.TYPE_INT_RGB);

Graphics2D big2d = bi.createGraphics();



// Male das JPanel in das BufferedImage

jpanel.paint(big2d);



try {

// Schreibe das BufferedImage als JPG

FileOutputStream fos = new FileOutputStream(new File(fileName));

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);

param.setQuality(quality, false);

encoder.setJPEGEncodeParam(param);

encoder.encode(bi);



} catch (Exception ex) {

ex.printStackTrace();

}

}



}





Ich hoffe, das hilft dir weiter.



bye



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: