Private Class MedicalViewerForm : Inherits Form 
   Private _medicalViewer As MedicalViewer 
   Public label As Label 
   Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) 
      _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom) 
   End Sub 
 
   Public Sub New() 
      RasterCodecs.Startup() 
      Dim _codecs As RasterCodecs = New RasterCodecs() 
      Dim _image As RasterImage 
 
      AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged 
 
       
      _medicalViewer = New MedicalViewer(1, 2) 
      _medicalViewer.Location = New Point(0, 0) 
      _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 10) 
 
       
      _medicalViewer.AddAction(MedicalViewerActionType.WindowLevel) 
      _medicalViewer.AddAction(MedicalViewerActionType.Alpha) 
      _medicalViewer.AddAction(MedicalViewerActionType.Offset) 
 
       
      _medicalViewer.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) 
      _medicalViewer.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) 
      _medicalViewer.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active Or MedicalViewerActionFlags.RealTime) 
 
       
      Dim cell As MedicalViewerCell = New MedicalViewerCell() 
      cell.Rows = 1 
      cell.Columns = 1 
      cell.FitImageToCell = True 
 
      _medicalViewer.Cells.Add(cell) 
 
       
      _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) 
 
 
       
      _image = _codecs.Load(LeadtoolsExamples.Common.ImagesPath.Path + "mr.dcm") 
      _medicalViewer.Cells.Add(New MedicalViewerCell(_image, True, 2, 2)) 
 
       
      _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" 
 
      RasterCodecs.Shutdown() 
      Controls.Add(_medicalViewer) 
   End Sub 
   Public ReadOnly Property Viewer() As MedicalViewer 
      Get 
         Return _medicalViewer 
      End Get 
   End Property 
End Class 
 
Private Function GetMedicalControl() As MedicalViewerForm 
   Return New MedicalViewerForm() 
End Function 
 
 
 
Public Sub MedicalViewerLowMemoryUsageExample() 
   Dim myForm As MedicalViewerForm = GetMedicalControl() 
   Dim medicalViewer As MedicalViewer = myForm.Viewer 
 
 
   RasterCodecs.Startup() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   Dim i As Integer = 0 
   Dim count As Integer 
 
 
   Dim info As CodecsImageInfo 
   Dim fileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "xa.dcm" 
   info = codecs.GetInformation(fileName, True) 
   count = info.TotalPages 
   Dim a As MedicalViewerImageInformation() = New MedicalViewerImageInformation(count - 1) {} 
 
   i = 0 
   Do While i < count 
      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 
      i += 1 
   Loop 
 
   AddHandler medicalViewer.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged1 
   AddHandler medicalViewer.FramesRequested, AddressOf medicalViewer_FramesRequested 
   medicalViewer.Cells(0).EnableLowMemoryUsage(2, count, a) 
   myForm.ShowDialog() 
   RasterCodecs.Shutdown() 
End Sub 
 
Private Sub medicalViewer_ActiveSubCellChanged1(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs) 
   Dim imageInformation As String = "" 
   Dim viewer As MedicalViewer = CType(sender, MedicalViewer) 
   If viewer.Cells(0).VirtualImage(e.SubCellIndex).ImageExist Then 
      imageInformation = "Image bit per pixel = " & viewer.Cells(0).VirtualImage(e.SubCellIndex).Image.BitsPerPixel.ToString() 
   End If 
 
   CType(viewer.Parent, MedicalViewerForm).label.Text = imageInformation & " HasRegion = " & viewer.Cells(0).VirtualImage(e.SubCellIndex).HasRegion 
End Sub 
 
Private Sub medicalViewer_FramesRequested(ByVal sender As Object, ByVal e As MedicalViewerRequestedFramesInformationEventArgs) 
   Dim fileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "xa.dcm" 
   Dim _codecs As RasterCodecs = New RasterCodecs() 
   Dim i As Integer 
   Dim b As RasterImage 
 
   If e.RequestedFramesIndexes.Length > 0 Then 
      b = _codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes(0) + 1, e.RequestedFramesIndexes(0) + 1) 
   Else 
      Return 
   End If 
 
   i = 1 
   Do While i < e.RequestedFramesIndexes.Length 
      b.AddPage(_codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, e.RequestedFramesIndexes(i) + 1, e.RequestedFramesIndexes(i) + 1)) 
      i += 1 
   Loop 
 
   CType(sender, MedicalViewer).Cells(e.CellIndex).SetRequestedImage(b, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert) 
End Sub |