If the content of the TImageEnMView is being loaded on demand (e.g. you are using LoadFromFileOnDemand) then the image properties such as ImageWidth and ImageHeight, and I/O parameters will not be valid until the image has loaded. Calling EnsureImageLoaded will force an image to be loaded so you can access its properties.
Naturally calling EnsureImageLoaded too often (e.g. for all images) would defeat the purpose of loading on demand and affect performance.
If ParamsOnly = true, then only the properties of the image, such as its dimension are loaded.
// Get the dimensions of the selected image if ImageEnMView1.SelectedImage >= 0 then begin ImageEnMView1.EnsureImageLoaded( ImageEnMView1.SelectedImage ); StatusBar.Text [ 0 ] := ImageEnMView1.ImageWidth[ ImageEnMView1.SelectedImage ] + ' x ' + ImageEnMView1.ImageHeight[ ImageEnMView1.SelectedImage ]; end;
// Read the Photoshop description of the selected image if ImageEnMView1.SelectedImage >= 0 then begin ImageEnMView1.EnsureImageLoaded( ImageEnMView1.SelectedImage ); StatusBar.Text [ 1 ] := ImageEnMView1.MIO.Params[ ImageEnMView1.SelectedImage ].ReadIPTCField(PhotoShop_IPTC_Records, IPTC_PS_Caption); end;