SetBitmapListValue Example for Delphi

var
   uCount: Cardinal;
   nRet: Integer;
begin
   LEADDicom1.EnableMethodErrors := false;

   { move to the root element }
   LEADDicom1.MoveFirstElement(false);
   LEADDicom1.MoveRootElement();

   { insert a new element for the BitmapList Value }
   LEADDicom1.FindFirstElement(TAG_PIXEL_DATA, false);
   LEADDicom1.DeleteElement();
   LEADDicom1.InsertElement(false, TAG_PIXEL_DATA, VR_OB, false, 0);
   { load an image }
   LEADImage1.Load ('c:\lead\images\image1.cmp', 0, 1, 1);
   ShowMessage('Image loaded from File - Wait');

   { create a bitmap list }
   LEADImage2.InsertBitmapListItem (0, LEADImage1.Bitmap);
   LEADImage1.Flip ();
   LEADImage2.InsertBitmapListItem(1, LEADImage1.Bitmap);
   LEADImage1.  Reverse();
   LEADImage2.InsertBitmapListItem(2, LEADImage1.Bitmap);

   { insert the image list into the element }
   LEADDicom1.BitmapList := LEADImage2.BitmapList;

   { set the bitmap list }
   nRet := LEADDicom1.SetBitmapListValue(DICOM_IMAGE_COMPRESSION_NONE, DICOM_IMAGE_PHOTOMETRIC_RGB, 0, 0);

   If nRet <> SUCCESS Then
   begin
      ShowMessage('Error Number: ' + IntToStr(LEADDicom1.Error));
      exit;
   end;
   ShowMessage('Image set to Data Set - Wait');

   LEADDicom1.BitmapList := 0; { free the value }
   ShowMessage('ImageList cleared from memory - Wait');

   uCount := LEADDicom1.GetBitmapCount();

   { get the bitmap list back }
   If nRet = SUCCESS Then
   begin
      LEADDicom1.GetBitmapListValue(0, uCount, 0, ORDER_RGB);
      LEADImage1.BitmapList := LEADDicom1.BitmapList;
      LEADImage1.ForceRepaint ();
   End;
   LEADDicom1.EnableMethodErrors := true;
   ShowMessage('ImageList loaded from Data Set - Wait');
End;