←Select platform

GetImages(DicomElement,int,int,int,RasterByteOrder,DicomGetImageFlags,DicomGetImageCallback) Method

Summary
Gets the images of a Pixel Data element.
Syntax
C#
VB
C++
Public Overloads Function GetImages( _ 
   ByVal element As DicomElement, _ 
   ByVal index As Integer, _ 
   ByVal count As Integer, _ 
   ByVal bitsPerPixel As Integer, _ 
   ByVal order As RasterByteOrder, _ 
   ByVal flags As DicomGetImageFlags, _ 
   ByVal callback As DicomGetImageCallback _ 
) As RasterImage 

Parameters

element
An item in the Data Set.

index
The zero-based index of the first frame to load.

count
Value that represents the number of frames to load.

bitsPerPixel
Value that represents the resulting image pixel depth. Possible values are:

Value Meaning
0 Keep the original file's pixel depth (do not convert).
1 to 8 Use the specified bits per pixel in the resulting image.
12 Use 12 bits per pixel in the resulting image.
16 Use 16 bits per pixel in the resulting image.
24 Use 24 bits per pixel in the resulting image.
32 Use 32 bits per pixel in the resulting image.

order
This value is ignored.

flags
Flags that control the behavior of this method.

callback
DicomGetImageCallback which will be called for each image that is loaded. This parameter cannot be null.

Return Value

The images of a Pixel Data element.

Remarks

For more details, see GetImages

Example

This example will read a DICOM dataset and get all the images from the pixel data element.

C#
VB
using Leadtools; 
using Leadtools.Dicom; 
 
 
private bool DicomTestGetImageCallback(int index, int count) 
{ 
   System.Diagnostics.Debug.WriteLine(string.Format("GetImage: {0} of {1}", index + 1, count)); 
   return true; 
} 
 
public void TestDicomGetImages() 
{ 
   string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "IMAGE1.dcm"); 
 
   //Make sure to initialize the DICOM engine, this needs to be done only once in the whole application 
   DicomEngine.Startup(); 
   using (DicomDataSet ds = new DicomDataSet()) 
   { 
      //Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None); 
 
      DicomElement pixelDataElement = ds.FindFirstElement(null, DicomTag.PixelData, true); 
      if (pixelDataElement == null) 
      { 
         Console.WriteLine("Sample: This dataset is missing the pixel data element"); 
         return; 
      } 
 
      if (ds.GetImageCount(pixelDataElement) == 0) 
      { 
         Console.WriteLine("Sample: This dataset has no images"); 
         return; 
      } 
 
      DicomImageInformation imageInformation = ds.GetImageInformation(pixelDataElement, 0); 
      if (imageInformation == null) 
      { 
         Console.WriteLine("Sample: Can't retrieve image information"); 
         return; 
      } 
 
      // Get all the frames into a RasterImage object 
      RasterImage image = ds.GetImages(pixelDataElement, 0, imageInformation.FrameCount, 0, RasterByteOrder.Gray, 
                                       DicomGetImageFlags.AllowRangeExpansion | DicomGetImageFlags.AutoApplyModalityLut | DicomGetImageFlags.AutoApplyVoiLut, 
                                       DicomTestGetImageCallback); 
 
      if (image == null) 
      { 
         Console.WriteLine("Sample: Can't retrieve image"); 
         return; 
      } 
 
      Debug.WriteLine(string.Format("Total Images: {0}", image.PageCount)); 
 
   } 
   DicomEngine.Shutdown(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Dicom 
 
Private Function DicomTestGetImageCallback(index As Integer, count As Integer) As Boolean 
   System.Diagnostics.Debug.WriteLine(String.Format("GetImage: {0} of {1}", index + 1, count)) 
   Return True 
End Function 
 
Public Sub TestDicomGetImages() 
   Dim dicomFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.dcm") 
 
   ' Make sure to initialize the DICOM engine, this needs to be done only once in the whole application 
   DicomEngine.Startup() 
   Dim ds As DicomDataSet = New DicomDataSet() 
   Using (ds) 
      'Load DICOM File 
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None) 
 
      Dim pixelDataElement As DicomElement = ds.FindFirstElement(Nothing, DicomTag.PixelData, True) 
      If pixelDataElement Is Nothing Then 
         MessageBox.Show("This dataset is missing the pixel data element", "Sample") 
         Return 
      End If 
 
      If ds.GetImageCount(pixelDataElement) = 0 Then 
         MessageBox.Show("This dataset has no images", "Sample") 
         Return 
      End If 
 
      Dim imageInformation As DicomImageInformation = ds.GetImageInformation(pixelDataElement, 0) 
      If imageInformation Is Nothing Then 
         MessageBox.Show("Can't retrieve image information", "Sample") 
         Return 
      End If 
 
      ' Get all the frames into a RasterImage object 
      Dim image As RasterImage = ds.GetImages(pixelDataElement, 0, imageInformation.FrameCount, 0, RasterByteOrder.Gray, 
                                              DicomGetImageFlags.AllowRangeExpansion Or DicomGetImageFlags.AutoApplyModalityLut Or DicomGetImageFlags.AutoApplyVoiLut, 
                                              AddressOf DicomTestGetImageCallback) 
 
      If image Is Nothing Then 
         MessageBox.Show("Can't retrieve image", "Sample") 
         Return 
      End If 
 
      System.Diagnostics.Debug.WriteLine(String.Format("Total Images: {0}", image.PageCount)) 
   End Using 
   DicomEngine.Shutdown() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

Help Version 21.0.2021.6.30
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.