Ola galera.
Estou precisando salvar a imagem contida em um jpanel…
Tipo, eu crio um codigo de barras e desenho no painel, mais nao sei como
imprimir… ai pensei em salvar a imagem e posteriormente imprimir.
Ola galera.
Estou precisando salvar a imagem contida em um jpanel…
Tipo, eu crio um codigo de barras e desenho no painel, mais nao sei como
imprimir… ai pensei em salvar a imagem e posteriormente imprimir.
Entao… galera ja consegui desenhar varias coisas no panel…
mas salva-lo ou imprimi-lo alguem sabe como?
Help, Please.
achei galera… um metodo facil facil
public void exportarJPEG(File file, int w,int h){
BufferedImage buffer=null;
buffer=atualizarBuffer(buffer,w,h);
if(buffer==null){
System.out.println("nao criou buffer");
}
writeJPEG(file, buffer);
}
/**construção do buffer de imagem para exportar imagem
* @param buffer objeto buffer de imagem
* @param w largula da imagem
* @param h altura da imagem*/
private BufferedImage atualizarBuffer(BufferedImage buffer,int w,int h){
buffer = new BufferedImage( w,h, BufferedImage.TYPE_INT_RGB );
Color c=Color.WHITE;
int cor=c.getRGB(); // pega a cor como inteiro
for(int i=0;i<w;i++){
for(int j=0;j<h;j++)
buffer.setRGB(i,j,cor);
}
Graphics2D g = null;
g = (Graphics2D)buffer.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g.setBackground(Color.white);
g.setStroke(new BasicStroke(4,BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
g.setPaint(Color.DARK_GRAY);
g.setColor(Color.BLUE);
//g.drawLine(0, 0, 10, 10)
barCode.getRenderer().render(g, 10, 10, 25);
g.drawString(""+x, 25, 60);
if(buffer==null){
System.out.println("buffer null");
}
return buffer;
}
/**salvar efetivamente a imagem em disco
* @param file arquivo para salvar imagem
* @param backBuffer buffer de imagem*/
private void writeJPEG(File file ,BufferedImage backBuffer) {
try {
BufferedOutputStream bos = new BufferedOutputStream( new FileOutputStream( file));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
if(backBuffer==null){
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$");
}
JPEGEncodeParam jep = encoder.getDefaultJPEGEncodeParam( backBuffer );
jep.setQuality( 1.0f, false );
encoder.setJPEGEncodeParam( jep );
encoder.encode( backBuffer );
bos.close();
} catch ( Exception e ) {
e.printStackTrace();
}
}
public void salvaImageCodigo(File file, int w,int h){
this.exportarJPEG( file, w,h);
}
Nao esqueca de exportar todos os seus objetos desenhados no ‘jpanel’ para Graphics2d.
Qqlr duvida entre em contato…
Agora como eu faço pra imprimir esta imagem jpeg???