TImageEnIO.SaveToStreamHeif
Declaration
procedure SaveToStreamHeif(Stream: TStream; HEVCCompression: Boolean = True);
Description
Saves the current image to a stream in Heif format.
The method used to save Heif files is specified by
ActiveHeifEngine.
HEVCCompression should be true for HEIF/HEIC format, and false for AVIF format (this is only supported when
ActiveHeifEngine is ieenDLL).
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
◼To abort while saving set
Aborting to true
Examples
// Save an image as a lossless HEIF file
ImageEnView1.IO.Params.Lossless := True;
ImageEnView1.IO.SaveToStreamHeif( fs );
// Save an image as a high quality lossy AVIF file
ImageEnView1.IO.Params.Lossless := True;
ImageEnView1.IO.Params.ImageQuality := 30;
ImageEnView1.IO.SaveToStreamHeif( fs, False );
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
◼SaveToFileHeif
◼LoadFromStreamHeif