DICOM

To load a DICOM image from a Stream, use the CreateGdPictureImageFromStream method from the GdPictureImaging class.

This method returns a non-zero GdPicture image identifier (imageID) on success. If it fails, it returns 0 — use GetStat() to view the failure reason.

For DICOM stream input, the filename-based overload is useful because the extension helps format detection:

CreateGdPictureImageFromStream(Stream, string FileName)

If the DICOM has multiple pages/frames, you can use:

Remember to release image resources with the ReleaseGdPictureImage method.

To load a DICOM image from a stream, use the following code:

using GdPicture14;
using System;
using System.IO;
using GdPictureImaging gdpictureImaging = new GdPictureImaging();
// Create a stream object from a DICOM file.
using Stream streamImage = new FileStream(@"C:\temp\source.dcm", FileMode.Open, FileAccess.Read);
// Create a GdPicture image from the stream object.
int imageID = gdpictureImaging.CreateGdPictureImageFromStream(streamImage, "source.dcm");
if (imageID == 0)
{
Console.WriteLine($"CreateGdPictureImageFromStream failed: {gdpictureImaging.GetStat()}");
return;
}
int pageCount = gdpictureImaging.DicomGetPageCount(imageID);
if (pageCount > 1)
{
GdPictureStatus selectStatus = gdpictureImaging.DicomSelectPage(imageID, 1);
if (selectStatus != GdPictureStatus.OK)
{
Console.WriteLine($"DicomSelectPage failed: {selectStatus}");
gdpictureImaging.ReleaseGdPictureImage(imageID);
return;
}
}
GdPictureStatus saveStatus = gdpictureImaging.SaveAsPNG(imageID, @"C:\temp\output.png");
if (saveStatus != GdPictureStatus.OK)
{
Console.WriteLine($"SaveAsPNG failed: {saveStatus}");
}
gdpictureImaging.ReleaseGdPictureImage(imageID);