SaveAnnotations(Stream,int) Method

Summary
Saves the annotation container of the specified sub-cell index to a file.
Syntax
C#
C++/CLI
public void SaveAnnotations( 
   Stream stream, 
   int subCellIndex 
) 
            public: 
void SaveAnnotations(  
   Stream^ stream, 
   int subCellIndex 
)  

Parameters

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

subCellIndex
The zero-based index of the sub-cell that contains the annotation container being saved.

Remarks
Example
C#
using Leadtools; 
using Leadtools.Drawing; 
using Leadtools.Codecs; 
using Leadtools.MedicalViewer; 
using Leadtools.ImageProcessing; 
using Leadtools.Annotations.Engine; 
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:\LEADTOOLS23\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MedicalViewer Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.