Load a DICOM image from a remote URL in C#
To load a DICOM image from a remote URL, use the CreateGdPictureImageFromHTTP method from the GdPictureImaging class.
This method returns a non-zero image identifier (imageID) on success. If it fails, it returns 0 — use GetStat() and GetLastTransferError() to diagnose failures.
It supports two common scenarios:
If the loaded DICOM has multiple pages/frames, you can use:
When transferring data to or from remote servers, you can optionally use the
SetHttpTransferBufferSizemethod to control transfer buffer size.
Loading a DICOM image from a public server
Use this overload: CreateGdPictureImageFromHTTP(string Host, string Path, int HTTPPort).
Remember to release the image resource once you stop using it. Use the ReleaseGdPictureImage method.
To load a DICOM image from a public server, use the following code:
using GdPicture14;using System;
using GdPictureImaging gdpictureImaging = new GdPictureImaging();
int imageID = gdpictureImaging.CreateGdPictureImageFromHTTP( "https://pspdfkit.com", "/downloads/load-a-file/source.dcm", 443);
if (imageID == 0){ Console.WriteLine($"HTTP load failed: {gdpictureImaging.GetStat()}"); Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}"); 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);Imports GdPicture14
Using gdpictureImaging As New GdPictureImaging() Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromHTTP( "https://pspdfkit.com", "/downloads/load-a-file/source.dcm", 443)
If imageID = 0 Then Console.WriteLine($"HTTP load failed: {gdpictureImaging.GetStat()}") Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}") Return End If
Dim pageCount As Integer = gdpictureImaging.DicomGetPageCount(imageID) If pageCount > 1 Then Dim selectStatus As GdPictureStatus = gdpictureImaging.DicomSelectPage(imageID, 1) If selectStatus <> GdPictureStatus.OK Then Console.WriteLine($"DicomSelectPage failed: {selectStatus}") gdpictureImaging.ReleaseGdPictureImage(imageID) Return End If End If
Dim saveStatus As GdPictureStatus = gdpictureImaging.SaveAsPNG(imageID, "C:\temp\output.png") If saveStatus <> GdPictureStatus.OK Then Console.WriteLine($"SaveAsPNG failed: {saveStatus}") End If
gdpictureImaging.ReleaseGdPictureImage(imageID)End UsingLoading a DICOM image from a protected server
Use this overload: CreateGdPictureImageFromHTTP(string Uri, string Login, string Password).
Remember to release the image resource once you stop using it. Use the ReleaseGdPictureImage method.
To load a DICOM image from a protected server, use the following code:
using GdPicture14;using System;
using GdPictureImaging gdpictureImaging = new GdPictureImaging();
int imageID = gdpictureImaging.CreateGdPictureImageFromHTTP( "https://pspdfkit.com/downloads/load-a-file/source.dcm", "admin", "password");
if (imageID == 0){ Console.WriteLine($"HTTP load failed: {gdpictureImaging.GetStat()}"); Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}"); 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);Imports GdPicture14
Using gdpictureImaging As New GdPictureImaging() Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromHTTP( "https://pspdfkit.com/downloads/load-a-file/source.dcm", "admin", "password")
If imageID = 0 Then Console.WriteLine($"HTTP load failed: {gdpictureImaging.GetStat()}") Console.WriteLine($"Transfer error: {gdpictureImaging.GetLastTransferError()}") Return End If
Dim pageCount As Integer = gdpictureImaging.DicomGetPageCount(imageID) If pageCount > 1 Then Dim selectStatus As GdPictureStatus = gdpictureImaging.DicomSelectPage(imageID, 1) If selectStatus <> GdPictureStatus.OK Then Console.WriteLine($"DicomSelectPage failed: {selectStatus}") gdpictureImaging.ReleaseGdPictureImage(imageID) Return End If End If
Dim saveStatus As GdPictureStatus = gdpictureImaging.SaveAsPNG(imageID, "C:\temp\output.png") If saveStatus <> GdPictureStatus.OK Then Console.WriteLine($"SaveAsPNG failed: {saveStatus}") End If
gdpictureImaging.ReleaseGdPictureImage(imageID)End Using