ImageEn, unit iexBitmaps

TIOParams.RAW_GetEmbeddedJpeg

TIOParams.RAW_GetEmbeddedJpeg


Declaration

property RAW_GetEmbeddedJpeg: Boolean;


Description

If enabled, ImageEn will load the embedded JPEG if it exists. Many RAW formats include an embedded JPEG for a quick preview image. If there is no embedded JPEG, the full size raw image will be loaded.
When RAW_GetEmbeddedJpeg is used, the size is guaranteed to be no smaller than RAW_EmbeddedJpegMinWidth x RAW_EmbeddedJpegMinHeight. You can also speed up loading by setting RAW_EmbeddedJpegLoading = ierlScaled.
It is also used to load a preview image when using TIEWICReader (if one is available)

Note: RAW_GetEmbeddedJpeg is only used if CameraRawEngine=ieenDLL or ieenWIC.

Default: False (Specified by IOParamDefaults)


Demos

Demo  Demos\InputOutput\CameraRaw\CameraRaw.dpr
Demo  Demos\InputOutput\IEViewPerformance\Performance.dpr


Raw Loading Speed

ImageEn offers four properties to improve loading speed for RAW images:
RAW_GetExifThumbnail
RAW_GetEmbeddedJpeg
RAW_EmbeddedJpegLoading
RAW_HalfSize


Usage

// Load the full size RAW
ImageEnView.IO.Params.RAW_GetExifThumbnail := False;
ImageEnView.IO.Params.RAW_GetEmbeddedJpeg := False;
ImageEnView.IO.Params.RAW_HalfSize := False;

// Load the half size RAW
ImageEnView.IO.Params.RAW_GetExifThumbnail := False;
ImageEnView.IO.Params.RAW_GetEmbeddedJpeg := False;
ImageEnView.IO.Params.RAW_HalfSize := True;

// Load the embedded JPEG (loading a half size raw if there is no embedded JPEG)
ImageEnView.IO.Params.RAW_GetExifThumbnail := False;
ImageEnView.IO.Params.RAW_GetEmbeddedJpeg := True;
ImageEnView.IO.Params.RAW_HalfSize := True;

// Load the thumbnail (will automatically fall back to the embedded JPEG if there is no thumbnail)
ImageEnView.IO.Params.RAW_GetExifThumbnail := True
ImageEnView.IO.Params.RAW_GetEmbeddedJpeg := True;
ImageEnView.IO.Params.RAW_HalfSize := True; // In case there is no EXIF thumbnail or embedded JPEG


Performance Testing

// Testing loading of 100 raw images of various types:
IEGlobalSettings().CameraRawEngine := ieenDLL;
ImageEnView1.IO.Params.RAW_GetExifThumbnail      := loadExif;
ImageEnView1.IO.Params.RAW_GetEmbeddedJpeg       := loadJpeg or loadExif;
ImageEnView1.IO.Params.RAW_EmbeddedJpegLoading   := jpegMethod;
ImageEnView1.IO.Params.RAW_EmbeddedJpegMinWidth  := 200;
ImageEnView1.IO.Params.RAW_EmbeddedJpegMinHeight := 200;
ImageEnView1.IO.Params.RAW_HalfSize              := loadHalf or loadJpeg or loadExif;
t := GetTickCount;
for i := 0 to ss.Count - 1 do
  ImageEnView1.IO.LoadFromFile( ss[i] );
memo1.Lines.Add('Load: ' + FloatToStr( GetTickCount - t / 1000 ));

Load Method Load Method Time
RAW_GetExifThumbnail loadExif=True 1.6 ms
RAW_GetEmbeddedJpeg (Scaled) loadJpeg=True, jpegMethod=ierScaled 1.7 ms
RAW_GetEmbeddedJpeg (WIC) loadJpeg=True, jpegMethod=ierWIC 2.1 ms
RAW_GetEmbeddedJpeg (Default) loadJpeg=True, jpegMethod=ierDefault 2.9 ms
RAW_HalfSize loadHalf = True 8.6 ms
Normal - 19.4 ms


Example

// Fastest loading of a RAW image at no smaller than 800x600
ImageEnView1.IO.Params.RAW_GetEmbeddedJpeg       := True;
ImageEnView1.IO.Params.RAW_EmbeddedJpegLoading   := ierlScaled;
ImageEnView1.IO.Params.RAW_EmbeddedJpegMinWidth  := 800;
ImageEnView1.IO.Params.RAW_EmbeddedJpegMinHeight := 600;
ImageEnView1.IO.LoadFromFile('C:\CRW_0001.CRW');


See Also

OptimizeLoadingParams
RAW_EmbeddedJpegLoading
RAW_EmbeddedJpegMinWidth
RAW_EmbeddedJpegMinHeight