ImageEn, unit imageenio

TImageEnIO.SaveToFileHeif

TImageEnIO.SaveToFileHeif

Declaration

procedure SaveToFileHeif(const FileName: WideString);

Description

Saves the current image to a file in Heif format.
The method used to save Heif files is specified by ActiveHeifEngine.

To save the image losslessly, set Lossless to true. Otherwise, specify the level of compression using ImageQuality.
For HEIF, a quality setting equivalent to 60-75% usually matches the visual fidelity of a 90% quality JPEG.
For AVIF, a value between 20 and 30 is usually the "sweet spot" for high-quality web images.

Note:
For ImageMagick Plug-In, use a Dictionary to specify quality options
If an internal save error is encountered Aborting will return true. Saving issues due to insufficient write permissions and disk write failures will raise an exception.
To abort while saving set Aborting to true

Examples

// Save an image to a Heif file with 80% quality
ImageEnView1.IO.Params.ImageQuality := 0.80;
ImageEnView1.IO.SaveToFileHeif( 'D:\image.heif' );

// Save an image to a lossless Heif
ImageEnView1.IO.Params.Lossless := True;
ImageEnView1.IO.SaveToFileHeif( 'D:\image.heif' );

// Save an image as a high quality lossy AVIF file
ImageEnView1.IO.Params.Lossless := True;
ImageEnView1.IO.Params.ImageQuality := 30;
ImageEnView1.IO.SaveToFileHeif( 'D:\image.avif' );

Heif Size Comparisons

ImageEnView1.IO.LoadFromFile( 'D:\Alpha.png' );   // Original PNG - 335KB


ImageEnView1.IO.Params.ImageQuality := 1.0;
ImageEnView1.IO.SaveToFileWIC( 'D:\image100.Heif' );  // 85KB


ImageEnView1.IO.Params.ImageQuality := 0.9;
ImageEnView1.IO.Params.Lossless     := False;
ImageEnView1.IO.SaveToFileWIC( 'D:\image90.Heif' );   // 68KB


ImageEnView1.IO.Params.ImageQuality := 0.7;
ImageEnView1.IO.SaveToFileWIC( 'D:\image70.Heif' );   // 40KB


ImageEnView1.IO.Params.ImageQuality := 0.5;
ImageEnView1.IO.SaveToFileWIC( 'D:\image50.Heif' );   // 21KB


ImageEnView1.IO.Params.ImageQuality := 0.2;
ImageEnView1.IO.SaveToFileWIC( 'D:\image20.Heif' );   // 7KB


ImageEnView1.IO.Params.ImageQuality := 0.01;
ImageEnView1.IO.SaveToFileWIC( 'D:\image01.Heif' );   // 3KB

See Also

SaveToStreamHeif
LoadFromFileHeif