C#
C++/CLI
Java
public interface DicomGetImageCallback
{
public boolean onDicomGetImageCallback(int page, int count);
}
page
Zero based index of the image being loaded from the DicomDataSet.
count
Total number of images to be loaded. This is the same value passed to GetImages(DicomElement element, int index, int count, int bitsPerPixel, RasterByteOrder order, DicomGetImageFlags flags, DicomGetImageCallback callback).
true to continue, false to abort the load.
The GetImages(DicomElement element, int index, int count, int bitsPerPixel, RasterByteOrder order, DicomGetImageFlags flags, DicomGetImageCallback callback) method calls your DicomGetImageCallback for each image that is loaded.
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:\LEADTOOLS23\Resources\Images";
}