←Select platform

SaveAnnotations(Stream) Method

Summary

Saves the annotation container(s) of a cell to a file.

Syntax

C#
VB
C++
public void SaveAnnotations(  
   Stream stream 
) 
Public Overloads Sub SaveAnnotations( _ 
   ByVal stream As Stream _ 
) 
public: 
void SaveAnnotations(  
   Stream^ stream 
) 

Parameters

stream
A System.IO.Stream to save the annotation container to.

Remarks

This method will save annotations to a file. To load the annotations, use the MedicalViewerMultiCell.LoadAnnotations method.

For more information, refer to Working With Annotations.

Example

C#
VB
Imports Leadtools 
Imports Leadtools.Drawing 
Imports Leadtools.Codecs 
Imports Leadtools.MedicalViewer 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Annotations.Core 
Imports Leadtools.Annotations.Designers 
Imports Leadtools.Annotations.Rendering 
 
Private Class MedicalViewerForm16 : Inherits Form 
    Private _medicalViewer As MedicalViewer 
    Private LoadAnnotation As Button 
    Private SaveAnnotation As Button 
    Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs) 
        _medicalViewer.Bounds = New Rectangle(0, 100, Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) 
    End Sub 
 
 
    Public Sub New() 
        Dim _codecs As RasterCodecs = New RasterCodecs() 
        Dim _image As RasterImage 
 
        AddHandler 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, 100) 
        _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom - 100) 
 
        ' Load an image and then add it to the control. 
        _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm")) 
        Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, 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.AnnotationRectangle) 
        cell.AddAction(MedicalViewerActionType.AnnotationEllipse) 
        cell.AddAction(MedicalViewerActionType.AnnotationHilite) 
 
        ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) 
        cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) 
        cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active) 
 
        ' 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.AnnotationRectangle) 
        _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationEllipse) 
        _medicalViewer.Cells(1).AddAction(MedicalViewerActionType.AnnotationHilite) 
 
        ' 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active) 
        _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active) 
        _medicalViewer.Cells(1).SetAction(MedicalViewerActionType.AnnotationHilite, 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) 
 
 
 
        LoadAnnotation = New Button() 
        LoadAnnotation.Bounds = New Rectangle(10, 10, 100, 30) 
        LoadAnnotation.Text = "Load Annotation" 
        AddHandler LoadAnnotation.Click, AddressOf LoadAnnotation_Click 
 
        SaveAnnotation = New Button() 
        SaveAnnotation.Bounds = New Rectangle(110, 10, 100, 30) 
        SaveAnnotation.Text = "Save Annotation" 
        AddHandler SaveAnnotation.Click, AddressOf SaveAnnotation_Click 
 
        Controls.AddRange(New Control() {_medicalViewer, LoadAnnotation, SaveAnnotation}) 
 
    End Sub 
 
    Public ReadOnly Property Viewer() As MedicalViewer 
        Get 
            Return _medicalViewer 
        End Get 
    End Property 
 
    Private Function GetFileStream() As FileStream 
        Dim fs As FileStream 
        If File.Exists(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) Then 
            fs = New FileStream(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann"), FileMode.Open) 
        Else 
            fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir, "SavedAnnotation.ann")) 
        End If 
 
        Return fs 
    End Function 
 
    Private Sub SaveAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) 
        Dim fs As FileStream = GetFileStream() 
        Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) 
 
        cell.SaveAnnotations(fs, 0) 
        fs.Close() 
    End Sub 
 
    Private Sub LoadAnnotation_Click(ByVal sender As Object, ByVal e As EventArgs) 
        Dim fs As FileStream = GetFileStream() 
        Dim cell As MedicalViewerMultiCell = CType(_medicalViewer.Cells(0), MedicalViewerMultiCell) 
 
        cell.LoadAnnotations(fs, 0) 
        fs.Close() 
    End Sub 
End Class 
 
 
Private Function GetMedicalControl16() As MedicalViewerForm16 
    Return New MedicalViewerForm16() 
End Function 
 
' This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. 
<TestMethod()> _ 
Public Sub MedicalViewerSaveAnnotationStreamExample() 
    Dim myForm As MedicalViewerForm16 = GetMedicalControl16() 
    Dim medicalViewer As MedicalViewer = myForm.Viewer 
 
    myForm.ShowDialog() 
End Sub 
 
 
Public NotInheritable Class LEAD_VARS 
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
using Leadtools; 
using Leadtools.Drawing; 
using Leadtools.Codecs; 
using Leadtools.MedicalViewer; 
using Leadtools.ImageProcessing; 
using Leadtools.Annotations.Core; 
using Leadtools.Annotations.Designers; 
using Leadtools.Annotations.Rendering; 
 
class MedicalViewerForm16 : Form 
{ 
    private MedicalViewer _medicalViewer; 
    Button LoadAnnotation; 
    Button SaveAnnotation; 
    void MedicalViewerForm_SizeChanged(object sender, EventArgs e) 
    { 
        _medicalViewer.Bounds = new Rectangle(0, 100, this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); 
    } 
 
 
    public MedicalViewerForm16() 
    { 
        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, 100); 
        _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom - 100); 
 
        // Load an image and then add it to the control. 
        _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm")); 
        MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, 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.AnnotationRectangle); 
        cell.AddAction(MedicalViewerActionType.AnnotationEllipse); 
        cell.AddAction(MedicalViewerActionType.AnnotationHilite); 
 
        // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
        cell.SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); 
        cell.SetAction(MedicalViewerActionType.AnnotationHilite, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); 
 
        // 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.AnnotationRectangle); 
        _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationEllipse); 
        _medicalViewer.Cells[1].AddAction(MedicalViewerActionType.AnnotationHilite); 
 
        // 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.AnnotationRectangle, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); 
        _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationEllipse, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active); 
        _medicalViewer.Cells[1].SetAction(MedicalViewerActionType.AnnotationHilite, 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); 
 
 
 
        LoadAnnotation = new Button(); 
        LoadAnnotation.Bounds = new Rectangle(10, 10, 100, 30); 
        LoadAnnotation.Text = "Load Annotation"; 
        LoadAnnotation.Click += new EventHandler(LoadAnnotation_Click); 
 
        SaveAnnotation = new Button(); 
        SaveAnnotation.Bounds = new Rectangle(110, 10, 100, 30); 
        SaveAnnotation.Text = "Save Annotation"; 
        SaveAnnotation.Click += new EventHandler(SaveAnnotation_Click); 
 
        Controls.AddRange(new Control[] { _medicalViewer, LoadAnnotation, SaveAnnotation }); 
 
    } 
 
    public MedicalViewer Viewer 
    { 
        get { return _medicalViewer; } 
    } 
 
    FileStream GetFileStream() 
    { 
        FileStream fs; 
        if (File.Exists(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"))) 
            fs = new FileStream(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann"), FileMode.Open); 
        else 
            fs = File.Create(Path.Combine(LEAD_VARS.ImagesDir,"SavedAnnotation.ann")); 
 
        return fs; 
    } 
 
    void SaveAnnotation_Click(object sender, EventArgs e) 
    { 
        FileStream fs = GetFileStream(); 
        MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); 
 
        cell.SaveAnnotations(fs, 0); 
        fs.Close(); 
    } 
 
    void LoadAnnotation_Click(object sender, EventArgs e) 
    { 
        FileStream fs = GetFileStream(); 
        MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(_medicalViewer.Cells[0]); 
 
        cell.LoadAnnotations(fs, 0); 
        fs.Close(); 
    } 
} 
 
 
MedicalViewerForm16 GetMedicalControl16() 
{ 
    return new MedicalViewerForm16(); 
} 
 
// This example copied the annotation container of the sub-cell when user right clicks on it, and paste the annotation container on the sub-cell that the user click on it using the left mouse button. 
public void MedicalViewerSaveAnnotationStreamExample() 
{ 
    MedicalViewerForm16 myForm = GetMedicalControl16(); 
    MedicalViewer medicalViewer = myForm.Viewer; 
 
    myForm.ShowDialog(); 
} 
 
 
static class LEAD_VARS 
{ 
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.MedicalViewer Assembly
Click or drag to resize