public int OverlayCount { get; }
Public ReadOnly Property OverlayCount As Integer
public int getOverlayCount()
public:
property int OverlayCount {
int get();
}
The number of overlays in the Data Set.
This property gets the number of overlays inside a Data Set by counting the number of repeating groups in the range (6000-601E).
This example will read a DICOM dataset and update its overlay attributes and overlay image.
using Leadtools;
using Leadtools.Dicom;
public void TestOverlay()
{
string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "Overlay.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);
if (ds.OverlayCount > 0)
{
RasterOverlayAttributes attributes = ds.GetOverlayAttributes(0);
if (attributes != null)
{
// We can call in here methods like GetOverlayGroupNumber, IsOverlayInDataset
// and GetOverlayActivationLayer to get some further infromation about the overlay
//Let's get the overlay Image, If RasterOverlayAttributes.NumFramesInOverlay
//Is greater than 1 we can call GetOverlayImages to extract all the frames
RasterImage overlayImage = ds.GetOverlayImage(0);
if (overlayImage != null)
{
using (DicomDataSet ds1 = new DicomDataSet())
{
ds1.Initialize(DicomClassType.DXImageStoragePresentation, DicomDataSetInitializeType.ExplicitVRLittleEndian);
ds1.SetOverlayAttributes(0, attributes, DicomSetOverlayFlags.None);
ds1.SetOverlayImage(0, overlayImage);//We can call SetOverlayImages if the overlay has more than one frame
ds1.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "NewOverlay.dcm"), DicomDataSetSaveFlags.None);
}
}
}
}
}
DicomEngine.Shutdown();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";
}
Imports Leadtools
Imports Leadtools.Dicom
Public Sub TestOverlay()
Dim dicomFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Overlay.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)
If ds.OverlayCount > 0 Then
Dim attributes As RasterOverlayAttributes = ds.GetOverlayAttributes(0)
If Not attributes Is Nothing Then
' We can call in here methods like GetOverlayGroupNumber, IsOverlayInDataset
' and GetOverlayActivationLayer to get some further infromation about the overlay
'Let's get the overlay Image, If RasterOverlayAttributes.NumFramesInOverlay
'Is greater than 1 we can call GetOverlayImages to extract all the frames
Dim overlayImage As RasterImage = ds.GetOverlayImage(0)
If Not overlayImage Is Nothing Then
Dim ds1 As DicomDataSet = New DicomDataSet()
Using (ds1)
ds1.Initialize(DicomClassType.DXImageStoragePresentation, DicomDataSetInitializeType.ExplicitVRLittleEndian)
ds1.SetOverlayAttributes(0, attributes, DicomSetOverlayFlags.None)
ds1.SetOverlayImage(0, overlayImage) 'We can call SetOverlayImages if the overlay has more than one frame
ds1.Save(Path.Combine(LEAD_VARS.ImagesDir, "NewOverlay.dcm"), DicomDataSetSaveFlags.None)
End Using
End If
End If
End If
End Using
DicomEngine.Shutdown()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"
End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document