11.2.0.10 added support for High Efficiency Image Format (HEIF) images
A word about format support
Due to the way the file extension is used - our decoder is the HeifDecoder, but you may find that files being processed have the HEIC extension
HEIF is a container format developed by the Moving Picture Experts Group (MPEG) which can contain many different licensed audio and video formats
Atalasoft supports a subset of these images - most often seen as output from Apple devices as it has been Apples go to format for some time now.
Our HeifDecoder supports single and multiple frame HEIC / HEIF images
See also: What the HEIC? Apple’s Highly Compressed Image Format Still Confuses
Adding HEIF/HEIC support to DotImage
This topic is covered by its own KB article: HOWTO: Add Support for HEIF \ HEIC Files to DotImage
Multiple Frames in HEIF / HEIC Images
The HEIF / HEIC formats can support multiple frames - such as from a burst mode (however, please note that in testing, Apple devices save such files as .MOV (mpeg 4 movie) files and not HEIF/ HEIC and thus these files can not be decoded by DotImage. We support HEIF files with multiple HEIC frames
To make use of multiple frames, you need to use the GetFrameCount() method of the HeifDecoder
int imagesCount = heifDecoder.GetFrameCount(stream);
for (int i = 0; i < imagesCount; i++)
{
using (AtalaImage atalaImage = heifDecoder.Read(stream, i, null))
{
// .. process image here
}
}
Making use of features Unique to HeifDecoder
There are a couple features unique to HeifDecoder
,p>In order to get access to auxiliary images, thumbnails, metadata, etc. GetHeifDocument(Stream, ProgressEventHandler) method should be used:
HeifDocument heifDocument = heifDecoder.GetHeifDocument(stream, null);
foreach (var heifImage in heifDocument.HeifImages)
{
// reading auxiliary images
foreach (var auxiliaryImage in heifImage.AuxiliaryImages)
{
// process auxiliary image
}
// retrieve AtalaImage
var atalaImage = heifImage.GetImage();
}