This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Tuesday, November 4, 2008 11:49:28 AM(UTC)
Groups: Registered
Posts: 19
I want be able to get a list of annotations stored in a tiff... specifically i want what kind of annotation it is... i don't want to have to open the document into a rasterimage and then apply the tag then loop through annotations... i want to be able to just read the tag... i've got some code below in hopes you can understand what i want. I'm using .NET v16
RasterCodecs.Startup()
Dim _Codecs As New RasterCodecs
Dim info As CodecsImageInfo
If strPath.IndexOf("http") > -1 Then
info = _Codecs.GetInformation(New System.Uri(strPath), True)
Else
info = _Codecs.GetInformation(strPath, True)
End If
Dim tag As RasterTagMetadata
For i As Integer = 1 To info.TotalPages
tag = _Codecs.ReadTag(strPath, i, RasterTagMetadata.AnnotationTiff)
'now loop through all annotations and determine what type they are...
Next
RasterCodecs.Shutdown()
#2
Posted
:
Tuesday, November 4, 2008 12:15:18 PM(UTC)
Groups: Registered, Tech Support, Administrators
Posts: 764
You don't have to display the annotations in the viewer, but you will need to load them into an AnnContainer in order to get information about the objects. Building on your pseudocode...:
AnnContainer tempContainer = new AnnContainer
AnnCodecs _AnnCodecs = new AnnCodecs
For i As Integer = 1 To info.TotalPages
' instead of using RasterCodecs.ReadTag, you'll need to use the InPlaceBitmapMetadataWriter. For an example
' check out the help file article for AnnCodecs.SaveToTag
_AnnCodecs.LoadFromTag(tagData, tempContainer
'now loop through all annotations in tempContainer and determine what type they are...
'end loop
' remove objects from tempContainer and proceed to next page
tempContainer.Objects.Clear()
Next
#3
Posted
:
Wednesday, November 5, 2008 3:39:20 AM(UTC)
Groups: Registered
Posts: 19
i looked through the SaveToTag example you mentioned and it looks like it requires loading the file into a file stream... I didn't want to actually do that... where the ReadTag method did do what i wanted.
For i As Integer = 1 To info.TotalPages
tag = _Codecs.ReadTag(strPath, i, RasterTagMetadata.AnnotationTiff)
_AnnCodecs.LoadFromTag(tag, tempContainer)
'now loop through all annotations in tempContainer and determine what type they are...
For Each a As Annotations.AnnObject In tempContainer.Objects
If a.GetType Is GetType(AnnRedactionObject) Then
chkShowRedaction.Enabled = True
Else
chkShowAnnotations.Enabled = True
End If
Next
' remove objects from tempContainer and proceed to next page
tempContainer.Objects.Clear()
Next
#4
Posted
:
Wednesday, November 5, 2008 4:26:39 AM(UTC)
Groups: Registered, Tech Support, Administrators
Posts: 764
I figured you wouldn't need the SaveToTag since you only mentioned wanting to read the annotations, but the documentation team decided to lump those two functions together into a single example. This is a pretty common practice for our Documentation.
Is this working as expected now? Let me know if you need anything else.
#5
Posted
:
Wednesday, November 5, 2008 4:33:22 AM(UTC)
Groups: Registered
Posts: 19
i got everything i need thanks
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.