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\InputOutput\CameraRaw\CameraRaw.dpr |
| 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 |
// 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