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;
}
總結
以上是生活随笔為你收集整理的emf java_Java实现emf图片字节流转png(jpg)图片字节流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt调用mysql加密接口_Qt实现客户
- 下一篇: java 重写方法 访问权限_为何Jav