Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.

Are you a Java Developer working with Image files?

Read and write images in Java with JDeli

What are the WMF and EMF Image File formats?

57 sec read

What is an EMF file?

EMF is a large metadata Windows file format designed to store high resolution images for high-quality image printing. It is often used for graphic designs as it has the ability to maintain quality.

What is a WMF file?

WMF is a 16-bit image file format. They have graphic drawing commands and property definitions which allow digital images to be displayed and reproduced identically.

What is the difference between EMF and WMF?

Enhanced MetaFile (EMF) and  Windows Metafile (WMF) are 2 linked image formats developed by Microsoft since the 1990s. Enhanced MetaFile is essentially an updated version of WMF which makes it 32 bit and addresses some other issues. Unlike most other image formats, it is a Vector file format.

While it can contain bitmap data, it mainly consists of shapes, lines and other Vector shapes. So it can be scaled or output to different devices such as printers which can draw the contents in much higher definition. In many ways, it is similar to PostScript, which was the predecessor to the PDF File Format.

EMF/WMF formats have been developed and extensively supported by Microsoft, and it is the native Vector File format for Microsoft Office applications so many Companies have lots of WMF/EMF files. However, it was not extensively adopted by other platforms and most Browsers.

EMF/WMF file formats are similar to SVG, which is widely supported by browsers because it is a part of HTML5.

How to read EMF and WMF images in Java?

There are additional blog posts on How to Read EMF files and How to Read WMF files in Java.



Find out how to read and write images files in Java with JDeli:

Read: BufferedImage image = JDeli.read(streamOrFile);

Write: JDeli.write(myBufferedImage, OutputFormat.HEIC, outputStreamOrFile)

Learn more >>

Mark Stephens Mark has been working with Java and PDF since 1999 and is a big NetBeans fan. He enjoys speaking at conferences. He has an MA in Medieval History and a passion for reading.