In this post, I will show you how to read EMF files into Java as a BufferedImage. This converts the EMF file into a bitmap, so you may also be interested in our post on How to convert EMF files to SVG in Java.
What is EMF?
EMF files are a public vector image format invented by Microsoft and very popular on the Windows platform. You can learn more about them in our post “What are the WMF and EMF image file formats?”.
JDeli can read EMF files directly into Java as a Buffered Image. This can be manipulated in Java and saved out to another file format.
The filename extension for EMF files is:
How to read an EMF image in Java with JDeli
Step 1 Add JDeli to your class or module path. (download the trial jar).
Step 2 Read the EMF image into a BufferedImage
//Read Image (can also be OutputStream or byte array) BufferedImage image = JDeli.read(emfFile);
Why use JDeli to read EMF files?
JDeli offers a range of advantages over ImageIO and alternatives, including:
- prevents heap related JVM crashes
- implements unsupported image formats
- can convert EMF to SVG
- improved read performance
- supports threading
- superior image scaling algorithms
Read and write images in Java with one line of code
Read an Image with
BufferedImage image = JDeli.read(streamOrFile);
and write an Image with
JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)