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 |