JAVA读取EMF文件并转化为PNG,JPG,GIF格式
2012-11-22 15:19
387 查看
JAVA读取EMF文件并转化为PNG,JPG,GIF格式
使用第三方库下载地址为:http://java.freehep.org/vectorgraphics/index.html
主要思路:
使用EMFInputStream读取EMF文件,然后使用EMFRenderer对象将EMF绘制到创建
好的空白的BufferedImage里面。这样就把EMF图片转化为Java中的BufferedImage对
象,然后可以重新保存为Java 2D支持图像格式如PNG或者JPG等。
代码如下:
本文出自 “流浪的鱼” 博客,请务必保留此出处http://gloomyfish.blog.51cto.com/8837804/1400322
使用第三方库下载地址为:http://java.freehep.org/vectorgraphics/index.html
主要思路:
使用EMFInputStream读取EMF文件,然后使用EMFRenderer对象将EMF绘制到创建
好的空白的BufferedImage里面。这样就把EMF图片转化为Java中的BufferedImage对
象,然后可以重新保存为Java 2D支持图像格式如PNG或者JPG等。
代码如下:
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; import org.freehep.graphicsio.emf.EMFInputStream; import org.freehep.graphicsio.emf.EMFRenderer; /** * download the third-party libraries here: * http://java.freehep.org/vectorgraphics/index.html * * @author gloomyfish * */ public class EMFReader { public static void main(String[] args) { try { EMFInputStream inputStream = new EMFInputStream(new FileInputStream("D:\\export.emf"), EMFInputStream.DEFAULT_VERSION); System.out.println("height = " + inputStream.readHeader().getBounds().getHeight()); System.out.println("widht = " + inputStream.readHeader().getBounds().getWidth()); // headerInfo of bitmap API always tell a lie, could not get // correct width and height // BitmapInfoHeader headerInfo = new BitmapInfoHeader(inputStream); // System.out.println("Big Error on reading emf format picture"); EMFRenderer emfRenderer = new EMFRenderer(inputStream); // create buffered image object from EMF render final int width = (int)inputStream.readHeader().getBounds().getWidth(); final int height = (int)inputStream.readHeader().getBounds().getHeight(); System.out.println("widht = " + width + " and height = " + height); final BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D)result.createGraphics(); emfRenderer.paint(g2); // write it as png/jpg/gif, up to you!!! File outputfile = new File("D:\\result.png"); ImageIO.write(result, "png", outputfile); // display it 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); } }; 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+20, height+40)); ui.setVisible(true); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
本文出自 “流浪的鱼” 博客,请务必保留此出处http://gloomyfish.blog.51cto.com/8837804/1400322
相关文章推荐
- JAVA读取EMF文件并转化为PNG,JPG,GIF格式
- JAVA读取EMF文件并转化为PNG,JPG,GIF格式
- JAVA读取EMF文件并转化为PNG,JPG,GIF格式
- JAVA读取EMF文件并转化为PNG,JPG,GIF格式
- JAVA读取EMF文件并转化为PNG,JPG,GIF格式
- 利用JAVA读取EMF相关文件并作相关格式的转化-实用知识
- Java里判断Image文件信息格式(GIF/PNG/JPG)/Size/Height/Width?
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- C# 判断图形文件(GIF,JPG,PNG)的图片格式的方法
- java 将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换
- java web - 限制文件的上传类型为图片类型(.gif,.png,.jpg,.jpeg)
- 用 java 读取excel 文件里的时间格式数据时,24时制会自动转化为12时制,解决办法
- c#判断图形文件(GIF,JPG,PNG)的图片格式的方法
- Java 转换png jpg gif格式图片的相互转换的实现
- 解决eWebEditor上传图片提示:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!
- 用 java 读取excel 文件里的时间格式数据时,24时制会自动转化为12时制,解决办法
- windows环境下emacs对jpg、gif、png等图片格式的支持文件
- java将图片缩放实现类(能将jpg、bmp、png、gif图片文件,进行等比或非等比的大小转换)
- 一次导出Word中的所有图形,可以是JPG,BMP,PNG,GIF,EMF,TIF格式