ImageEn, unit iexLayers

TIELayer.Bitmap

TIELayer.Bitmap


Declaration


property Bitmap: TIEBitmap;


Description


If the layer is a TIEImageLayer then Bitmap provides read/write access to the image and alpha channel of the layer.
For other TIELayer types, Bitmap provides read-only access to the layer content (e.g. to display an icon for the layer in a TImageEnMView).

Note: Unlike CopyToBitmap, Bitmap supports caching so will provide better performance if called frequently.


Examples


// Replace the image of the current layer with a bitmap
TIEImageLayer( ImageEnView1.CurrentLayer ).Bitmap.Assign( MyBitmap );
ImageEnView1.Update();


// Flip the image of all image layers
ImageEnView1.LockUpdate();
for I := 0 to ImageEnView1.LayersCount - 1 do
  if ImageEnView1.Layers[ I ] is TIEImageLayer then
    ImageEnView1.Layers[ I ].Bitmap.Flip( fdHorizontal );
ImageEnView1.UnlockUpdate();


// Prompt user to load new image into current image layer and log the result
if TIEImageLayer( ImageEnView1.CurrentLayer ).ExecuteOpenDialog() then
  AddToLog( format( 'Loaded image into layer %d: %s', [ ImageEnView1.LayersCurrent, TIEImageLayer( ImageEnView1.CurrentLayer ).Bitmap.Filename ]));


// REFRESH LAYER VIEWER (Show thumbnails of all layers in a TImageEnMView - same as TImageEnMView.AssignLayers method)
procedure Tfmain.RefreshLayerViewer;
var
  i, idx: integer;
begin
  // Fill ImageEnMView1 with all layers of ImageEnView1
  ImageEnMView1.Clear;
  for i := 0 to ImageEnView1.LayersCount - 1 do
  begin
    idx := ImageEnMView1.AppendImage;
    ImageEnMView1.SetImage( idx, ImageEnView1.Layers[i].Bitmap );
    ImageEnMView1.ImageTopText[i] := 'Layer ' + inttostr(i);
  end;

  // Mark selected layers and highlight the current layer
  ImageEnMView1.BeginSelectImages;
  for i := 0 to ImageEnView1.LayersCount - 1 do
    if ImageEnView1.Layers[ i ].Selected then
      ImageEnMView1.SelectedImage := I;
  ImageEnMView1.SelectedImage := ImageEnView1.LayersCurrent; // Make it the active image
  ImageEnMView1.EndSelectImages;
end;