900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > emf java_Java实现emf图片字节流转png(jpg)图片字节流

emf java_Java实现emf图片字节流转png(jpg)图片字节流

时间:2020-10-24 09:59:08

相关推荐

emf java_Java实现emf图片字节流转png(jpg)图片字节流

private byte[] emfToPng(InputStream is){//InputStream inputStream=null;

byte[] by=null;

EMFInputStream emf= null;

EMFRenderer emfRenderer= null;//创建储存图片二进制流的输出流

ByteArrayOutputStream baos = null;//创建ImageOutputStream流

ImageOutputStream imageOutputStream = null;try{

emf= newEMFInputStream(is, EMFInputStream.DEFAULT_VERSION);

emfRenderer= newEMFRenderer(emf);final int width = (int)emf.readHeader().getBounds().getWidth();final int height = (int)emf.readHeader().getBounds().getHeight();final BufferedImage result = newBufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

Graphics2D g2=(Graphics2D)result.createGraphics();

emfRenderer.paint(g2);//创建储存图片二进制流的输出流

baos = newByteArrayOutputStream();//创建ImageOutputStream流

imageOutputStream =ImageIO.createImageOutputStream(baos);//将二进制数据写进ByteArrayOutputStream

ImageIO.write(result, "png", imageOutputStream);//inputStream = new ByteArrayInputStream(baos.toByteArray());

by=baos.toByteArray();/*JPanel resultPanel = new JPanel() {

private static final long serialVersionUID = 1L;

public void paintComponent(Graphics g) {

super.paintChildren(g);

Graphics2D g2 = (Graphics2D)g;

g2.drawImage(result, 0, 0, width, height,null);

g2.dispose();

}

};

JFrame ui = new JFrame("EMF Reader");

ui.getContentPane().setLayout(new BorderLayout());

ui.getContentPane().add(resultPanel, BorderLayout.CENTER);

ui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

ui.setSize(new Dimension(width, height));

ui.setVisible(true);*/}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}finally{try{if(imageOutputStream!=null){

imageOutputStream.close();

}if(baos!=null){

baos.close();

}if(emfRenderer!=null){

emfRenderer.closeFigure();

}if(emf!=null){

emf.close();

}

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}returnby;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。