public MedicalViewerCollection<MedicalViewerVirtualImage> VirtualImage { get; } Public ReadOnly Property VirtualImage As MedicalViewerCollection(Of MedicalViewerVirtualImage)
public:property MedicalViewerCollection<MedicalViewerVirtualImage^>^ VirtualImage {MedicalViewerCollection<MedicalViewerVirtualImage^>^ get();}
using Leadtools;using Leadtools.Codecs;using Leadtools.MedicalViewer;class MedicalViewerForm : Form{private MedicalViewer _medicalViewer;public Label label;void MedicalViewerForm_SizeChanged(object sender, EventArgs e){_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);}public MedicalViewerForm(){RasterCodecs _codecs = new RasterCodecs();RasterImage _image;this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);// Create the medical viewer and adjust the size and the location._medicalViewer = new MedicalViewer(1, 2);_medicalViewer.Location = new Point(0, 0);_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom - 10);// Load an image and then add it to the control.//_image = _codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "xa.dcm");MedicalViewerMultiCell cell = new MedicalViewerMultiCell(null, true, 1, 1);_medicalViewer.Cells.Add(cell);// add some actions that will be used to change the properties of the images inside the control.cell.AddAction(MedicalViewerActionType.WindowLevel);cell.AddAction(MedicalViewerActionType.Alpha);cell.AddAction(MedicalViewerActionType.Offset);// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);cell.Rows = 1;cell.Columns = 1;cell.FitImageToCell = true;// adjust some properties of the cell and add some tags._medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");_medicalViewer.Cells[0].SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);_medicalViewer.Cells[0].SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);_medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);_medicalViewer.Cells[0].SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);// Load another image and then add it to the control._image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));_medicalViewer.Cells.Add(new MedicalViewerMultiCell(_image, true, 2, 2));// add some actions that will be used to change the properties of the images inside the control._medicalViewer.Cells[1].AddAction(MedicalViewerActionType.WindowLevel);_medicalViewer.Cells[1].AddAction(MedicalViewerActionType.Alpha);_medicalViewer.Cells[1].AddAction(MedicalViewerActionType.Offset);_medicalViewer.Cells[1].AddAction(MedicalViewerActionType.RectangleRegion);// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated._medicalViewer.Cells[1].SetAction(MedicalViewerActionType.RectangleRegion, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);_medicalViewer.Cells[1].SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);_medicalViewer.Cells[1].SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);// adjust some properties of the cell and add some tags._medicalViewer.Cells[1].SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");_medicalViewer.Cells[1].SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);_medicalViewer.Cells[1].SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);_medicalViewer.Cells[1].SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);_medicalViewer.Cells[1].SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);label = new Label();label.Location = new Point(0, this.ClientRectangle.Bottom - 10);label.Size = new Size(this.ClientRectangle.Right, 10);label.Text = "Here the statistical information will appear";Controls.Add(_medicalViewer);_medicalViewer.Dock = DockStyle.Fill;}public MedicalViewer Viewer{get { return _medicalViewer; }}}MedicalViewerForm GetMedicalControl(){return new MedicalViewerForm();}// This example shows how to use the low memory usage feature to display a medical image with multiple pages. it will also invert all the bitmap to show the invert function works even if the bitmap is not loaded yet.public void MedicalViewerLowMemoryUsageExample(){MedicalViewerForm myForm = GetMedicalControl();MedicalViewer medicalViewer = myForm.Viewer;MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);RasterCodecs codecs = new RasterCodecs();int i = 0;int count;CodecsImageInfo info;string fileName = Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm");info = codecs.GetInformation(fileName, true);count = info.TotalPages;MedicalViewerImageInformation[] a = new MedicalViewerImageInformation[count];for (i = 0; i < count; i++){info = codecs.GetInformation(fileName, true, i + 1);a[i] = new MedicalViewerImageInformation();a[i].ImageHeight = info.Height;a[i].ImageWidth = info.Width;a[i].XResolution = info.XResolution;a[i].YResolution = info.YResolution;}cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged1);cell.FramesRequested += new EventHandler<MedicalViewerRequestedFramesInformationEventArgs>(medicalViewer_FramesRequested);cell.EnableLowMemoryUsage(2, count, a);myForm.ShowDialog();}void medicalViewer_ActiveSubCellChanged1(object sender, MedicalViewerActiveSubCellChangedEventArgs e){string imageInformation = "";MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;if (cell.VirtualImage[e.SubCellIndex].ImageExist){imageInformation = "Image bit per pixel = " + cell.VirtualImage[e.SubCellIndex].Image.BitsPerPixel.ToString();}((MedicalViewerForm)(cell.ParentViewer.Parent)).label.Text = imageInformation + " HasRegion = " + cell.VirtualImage[e.SubCellIndex].HasRegion;}void medicalViewer_FramesRequested(object sender, MedicalViewerRequestedFramesInformationEventArgs e){MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(sender);string fileName =Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm");RasterCodecs _codecs = new RasterCodecs();int i;RasterImage b;if (e.RequestedFramesIndexes.Length > 0){b = _codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes[0] + 1, e.RequestedFramesIndexes[0] + 1);}elsereturn;for (i = 1; i < e.RequestedFramesIndexes.Length; i++){b.AddPage(_codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes[i] + 1, e.RequestedFramesIndexes[i] + 1));}cell.SetRequestedImage(b, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert);}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.MedicalViewerPrivate Class MedicalViewerForm : Inherits FormPrivate _medicalViewer As MedicalViewerPublic label As LabelPrivate Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)End SubPublic Sub New()Dim _codecs As RasterCodecs = New RasterCodecs()Dim _image As RasterImageAddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged' Create the medical viewer and adjust the size and the location._medicalViewer = New MedicalViewer(1, 2)_medicalViewer.Location = New Point(0, 0)_medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 10)' Load an image and then add it to the control.'_image = _codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "xa.dcm");Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(Nothing, True, 1, 1)_medicalViewer.Cells.Add(cell)' add some actions that will be used to change the properties of the images inside the control.cell.AddAction(MedicalViewerActionType.WindowLevel)cell.AddAction(MedicalViewerActionType.Alpha)cell.AddAction(MedicalViewerActionType.Offset)' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)cell.Rows = 1cell.Columns = 1cell.FitImageToCell = True' adjust some properties of the cell and add some tags._medicalViewer.Cells(0).SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")_medicalViewer.Cells(0).SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)_medicalViewer.Cells(0).SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)_medicalViewer.Cells(0).SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)_medicalViewer.Cells(0).SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)' Load another image and then add it to the control._image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm"))_medicalViewer.Cells.Add(New MedicalViewerMultiCell(_image, True, 2, 2))' add some actions that will be used to change the properties of the images inside the control._medicalViewer.Cells(1).AddAction(MedicalViewerActionType.WindowLevel)_medicalViewer.Cells(1).AddAction(MedicalViewerActionType.Alpha)_medicalViewer.Cells(1).AddAction(MedicalViewerActionType.Offset)_medicalViewer.Cells(1).AddAction(MedicalViewerActionType.RectangleRegion)' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated._medicalViewer.Cells(1).SetAction(MedicalViewerActionType.RectangleRegion, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)_medicalViewer.Cells(1).SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)_medicalViewer.Cells(1).SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)' adjust some properties of the cell and add some tags._medicalViewer.Cells(1).SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")_medicalViewer.Cells(1).SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)_medicalViewer.Cells(1).SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)_medicalViewer.Cells(1).SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)_medicalViewer.Cells(1).SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)label = New Label()label.Location = New Point(0, Me.ClientRectangle.Bottom - 10)label.Size = New Size(Me.ClientRectangle.Right, 10)label.Text = "Here the statistical information will appear"Controls.Add(_medicalViewer)_medicalViewer.Dock = DockStyle.FillEnd SubPublic ReadOnly Property Viewer() As MedicalViewerGetReturn _medicalViewerEnd GetEnd PropertyEnd ClassPrivate Function GetMedicalControl() As MedicalViewerFormReturn New MedicalViewerForm()End Function' This example shows how to use the low memory usage feature to display a medical image with multiple pages. it will also invert all the bitmap to show the invert function works even if the bitmap is not loaded yet.<TestMethod()> _Public Sub MedicalViewerLowMemoryUsageExample()Dim myForm As MedicalViewerForm = GetMedicalControl()Dim medicalViewer As MedicalViewer = myForm.ViewerDim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell)Dim codecs As RasterCodecs = New RasterCodecs()Dim i As Integer = 0Dim count As IntegerDim info As CodecsImageInfoDim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm")info = codecs.GetInformation(fileName, True)count = info.TotalPagesDim a As MedicalViewerImageInformation() = New MedicalViewerImageInformation(count - 1) {}i = 0Do While i < countinfo = codecs.GetInformation(fileName, True, i + 1)a(i) = New MedicalViewerImageInformation()a(i).ImageHeight = info.Heighta(i).ImageWidth = info.Widtha(i).XResolution = info.XResolutiona(i).YResolution = info.YResolutioni += 1LoopAddHandler cell.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged1AddHandler cell.FramesRequested, AddressOf medicalViewer_FramesRequestedcell.EnableLowMemoryUsage(2, count, a)myForm.ShowDialog()End SubPrivate Sub medicalViewer_ActiveSubCellChanged1(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)Dim imageInformation As String = ""Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)If cell.VirtualImage(e.SubCellIndex).ImageExist ThenimageInformation = "Image bit per pixel = " & cell.VirtualImage(e.SubCellIndex).Image.BitsPerPixel.ToString()End IfCType(cell.ParentViewer.Parent, MedicalViewerForm).label.Text = imageInformation & " HasRegion = " & cell.VirtualImage(e.SubCellIndex).HasRegionEnd SubPrivate Sub medicalViewer_FramesRequested(ByVal sender As Object, ByVal e As MedicalViewerRequestedFramesInformationEventArgs)Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)Dim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm")Dim _codecs As RasterCodecs = New RasterCodecs()Dim i As IntegerDim b As RasterImageIf e.RequestedFramesIndexes.Length > 0 Thenb = _codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes(0) + 1, e.RequestedFramesIndexes(0) + 1)ElseReturnEnd Ifi = 1Do While i < e.RequestedFramesIndexes.Lengthb.AddPage(_codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes(i) + 1, e.RequestedFramesIndexes(i) + 1))i += 1Loopcell.SetRequestedImage(b, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert)End SubPublic NotInheritable Class LEAD_VARSPublic 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
