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.
Are you a Java Developer working with Image files?
// Read an image
BufferedImage bufferedImage = JDeli.read(dicomImageFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(heicImageFile);
// Write an image
JDeli.write(bufferedImage, "heic", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpegImageFile);
// Write an image
JDeli.write(bufferedImage, "jpeg", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(jpeg2000ImageFile);
// Write an image
JDeli.write(bufferedImage, "jpx", outputStreamOrFile);
// Write an image
JDeli.write(bufferedImage, "pdf", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(pngImageFile);
// Write an image
JDeli.write(bufferedImage, "png", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(tiffImageFile);
// Write an image
JDeli.write(bufferedImage, "tiff", outputStreamOrFile);
// Read an image
BufferedImage bufferedImage = JDeli.read(webpImageFile);
// Write an image
JDeli.write(bufferedImage, "webp", outputStreamOrFile);
What is JDeli?
JDeli is a commercial Java Image library that is used to read, write, convert, manipulate and process many different image formats.
Why use JDeli?
To handle many well known formats such as JPEG, PNG, TIFF as well as newer formats like AVIF, HEIC and JPEG XL in java with no calls to any external system or third party library.
What licenses are available?
We have 3 licenses available:
Server for on premises and cloud servers, Distribution for use in a named end user applications, and Custom for more demanding requirements.
What's our Story?
We are a small company who have been developing innovative Java, PDF and HTML5 solutions for over 25 years.