Saves the annotation objects in a container as a TIFF tag data.
public byte[] SaveToTag(AnnContainer container,AnnCodecsTagFormat format)
Public Function SaveToTag( _ByVal container As Leadtools.Windows.Annotations.AnnContainer, _ByVal format As Leadtools.Windows.Annotations.AnnCodecsTagFormat _) As Byte()
public:array<byte>^ SaveToTag(Leadtools.Windows.Annotations.AnnContainer^ container,Leadtools.Windows.Annotations.AnnCodecsTagFormat format)
container
The AnnContainer containing the objects to be saved.
format
An AnnCodecsTagFormat value that specifies the format used when creating the tag data.
A byte array that can be saved into a TIFF file using System.Windows.Media.Imaging.BitmapMetadata.SetQuery(System.String,System.Object) method.
This method will return byte array that can be saved to Tiff file using System.Windows.Media.Imaging.BitmapMetadata.SetQuery(System.String,System.Object) method passing the query '/ifd/{uint=32932}'.
This method can return null (Nothing in VB) if you try to save unsupported objects to certain formats (for example, if you try to save an AnnRubberStampObject to a Wang format).
For more information, refer to WPF Annotation Files.
using Leadtools.Windows.Controls;using Leadtools.Windows.Annotations;using Leadtools.Demos;using Leadtools.Help;public void AnnCodecs_SaveToTag(ImageViewer viewer, string tifFileName){// first create a container and add a few objectsAnnContainer container = new AnnContainer();container.Width = 400;container.Height = 400;AnnLineObject lineObj = new AnnLineObject();lineObj.Start = new Point(100, 100);lineObj.End = new Point(200, 200);lineObj.Stroke = Colors.Red;lineObj.StrokeThickness = 1.0;container.Children.Add(lineObj);AnnRectangleObject rectObj = new AnnRectangleObject();rectObj.Rect = new Rect(100, 100, 200, 200);rectObj.Stroke = Colors.Red;rectObj.Fill = Colors.White;rectObj.StrokeThickness = 1.0;container.Children.Add(rectObj);// create a new instance of the AnnCodecs objectAnnCodecs ann = new AnnCodecs();// save this container as a TIFF tagbyte[] tagData = ann.SaveToTag(container, AnnCodecsTagFormat.Serialize);if (tagData != null){FileStream fs = new FileStream(tifFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);BitmapMetadata bmd = new BitmapMetadata("tiff");bmd.SetQuery("/ifd/{uint=32932}", tagData);BitmapFrame bf = BitmapFrame.Create(viewer.Source as BitmapSource, null, bmd, null);TiffBitmapEncoder tiffEncoder = new TiffBitmapEncoder();tiffEncoder.Frames.Add(bf);tiffEncoder.Save(fs);fs.Close();}// clear the container and the tagcontainer.Children.Clear();tagData = null;// re-load the tag{FileStream fs = new FileStream(tifFileName, FileMode.Open);BitmapFrame bf = BitmapFrame.Create(fs);InPlaceBitmapMetadataWriter tiffInplace = null;try{tiffInplace = bf.CreateInPlaceBitmapMetadataWriter();}catch{}finally{if (tiffInplace != null && tiffInplace.ContainsQuery("/ifd/{uint=32932}")){tagData = (byte[])tiffInplace.GetQuery("/ifd/{uint=32932}");}fs.Close();}}// load the containerann.LoadFromTag(tagData, container);}
Imports Leadtools.Windows.ControlsImports Leadtools.Windows.AnnotationsPublic Sub AnnCodecs_SaveToTag(ByVal viewer As ImageViewer, ByVal tifFileName As String)' first create a container and add a few objectsDim container As AnnContainer = New AnnContainer()container.Width = 400container.Height = 400Dim lineObj As AnnLineObject = New AnnLineObject()lineObj.Start = New Point(100, 100)lineObj.End = New Point(200, 200)lineObj.Stroke = Colors.RedlineObj.StrokeThickness = 1.0container.Children.Add(lineObj)Dim rectObj As AnnRectangleObject = New AnnRectangleObject()rectObj.Rect = New Rect(100, 100, 200, 200)rectObj.Stroke = Colors.RedrectObj.StrokeThickness = 1.0rectObj.Fill = Colors.Whitecontainer.Children.Add(rectObj)' create a new instance of the AnnCodecs objectDim ann As AnnCodecs = New AnnCodecs()' save this container as a TIFF tagDim tagData As Byte() = ann.SaveToTag(container, AnnCodecsTagFormat.Serialize)If Not tagData Is Nothing ThenDim fs1 As FileStream = New FileStream(tifFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)Dim bmd As BitmapMetadata = New BitmapMetadata("tiff")bmd.SetQuery("/ifd/{uint=32932}", tagData)Dim bf1 As BitmapFrame = BitmapFrame.Create(DirectCast(viewer.Source, BitmapSource), Nothing, bmd, Nothing)Dim tiffEncoder As TiffBitmapEncoder = New TiffBitmapEncoder()tiffEncoder.Frames.Add(bf1)tiffEncoder.Save(fs1)fs1.Close()End If' clear the container and the tagcontainer.Children.Clear()tagData = Nothing' re-load the tagDim fs As FileStream = New FileStream(tifFileName, FileMode.Open)Dim bf As BitmapFrame = BitmapFrame.Create(fs)Dim tiffInplace As InPlaceBitmapMetadataWriter = NothingTrytiffInplace = bf.CreateInPlaceBitmapMetadataWriter()CatchFinallyIf Not tiffInplace Is Nothing AndAlso tiffInplace.ContainsQuery("/ifd/{uint=32932}") ThentagData = CType(tiffInplace.GetQuery("/ifd/{uint=32932}"), Byte())End Iffs.Close()End Try' load the containerann.LoadFromTag(tagData, container)End Sub
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
