实现Exif特性

Exif文件格式比其他格式支持更复杂的注释。有关注释的列表,请参见Exif文件注释

这个例子演示了如何处理未存储为字符串的Exif注释。(有关保存字符串的更简单示例,请参阅WriteComment方法。)

这个例子做了以下工作:

1.

加载一个图像。

2.

通过从现有文件加载注释来更新注释数组。

3.

反转图像并创建RasterCommentMetadataType。UserComment说明图片已被颠倒的评论。

4.

保存文件。(所有的评论都被保存了下来,包括我们更新的那条。)

5.

读取并显示保存文件中的两个注释。其中之一就是我们创建的注释。另一个是使用Exif的注释RasterTagMetadataDataType。URational数据类型。

6.

清理注释数组。


VB

私有子WriteCommentsTest()昏暗编解码器作为新的光栅编解码器()模糊srcFileName为字符串=“C: \ LEADTOOLS21 \资源\ \ Image1.cmp图像”模糊destFileName为字符串=“C: \ LEADTOOLS21 \资源\ \ Exif.tif图像”作为光栅图像= codecs.Load(srcFileName)“翻转图片。将flipCmd设置为新的FlipCommand(True)flipCmd.Run (tempImage)向文件中添加用户评论并保存另一个名字。Dim comment As New RasterCommentMetadata()发表评论。类型= rastercommentmetadatype。UserCommentDim comments As String =“图像被翻转了”Dim data() As Char =注释。comments.Length ToCharArray (0)昏暗的数据评论(8 +评论。长度- 1)作为字节’当你需要写用户评论的前8个字节必须包含“Ascii”词。datcomments (0) = 41datcomments (1) = 53datcomments (2) = 43datcomments (3) = 49datcomments (4) = 49dataccomments (5) = 0dataccomments (6) = 0dataccomments (7) = 0For i As Integer = 0 To comments。长度- 1dataccomments (8 + i) = CType(AscW(data(i)), Byte)下一个data属性评论对象到dataComments数组。comment.FromByte (dataComments)’将用户评论添加到图片的评论集合中tempImage.Comments.Add(评论)codecs.Options.Save.Comments = True编解码器。保存(tempImage, destFileName, RasterImageFormat)。Exif, 24)tempImage.Dispose ()’阅读用户评论并显示出来注释=编解码器。ReadComment(destFileName, 1, rastercommentmetadattype . usercomment)datcomments = comment.GetData()将msg作为字符串="用户评论= "For i As Integer = 0 To dataComments。长度- 7msg = msg + dataccomments (i + 8).ToString下一个对话框。显示(味精,“通知”终止子


c#

私人无效WriteCommentsTest ()RasterCodecs codecs =RasterCodecs ();字符串srcFileName =@“C: \ LEADTOOLS21 \资源\ \ Image1.cmp图像”字符串destFileName =@“C: \ LEADTOOLS21 \资源\ \ Exif.tif图像”temimage = codecs.Load(srcFileName);//翻转图像。FlipCommand flipCmd =FlipCommand (真正的);flipCmd.Run (tempImage);//添加一个用户注释到文件中,并以另一个名称保存。RasterCommentMetadata注释=RasterCommentMetadata ();发表评论。类型= rastercommentmetadattype . usercomment;字符串评论=“图像被翻转了”字符[] data = comments。ToCharArray (0, comments.Length);字节[] datcomments =字节[8 +评论。长度];//当你需要写一个用户注释的前8个字节//必须包含"Ascii"字。datcomments [0] = 41;datcomments [1] = 53;datcomments [2] = 43;datcomments [3] = 49;datcomments [4] = 49;datcomments [5] = 0;datcomments [6] = 0;datcomments [7] = 0;intI = 0;i < comments.Length;我+ +)datcomments [8 + i] = (字节)数据(我);//将注释对象中的data属性设置为dataComments数组。comment.FromByte (dataComments);//将用户评论添加到图像的评论集合中tempImage.Comments.Add(评论);codecs.Options.Save.Comments =真正的编解码器。保存(tempImage, destFileName, RasterImageFormat)。今年24岁的Exif);tempImage.Dispose ();//读取用户评论并显示它注释=编解码器。ReadComment(destFileName, 1, rastercommentmetadattype . usercomment);datcomments = comment.GetData();字符串味精="用户评论= "intI = 0;i < (dataccomments . i < (dataccomments . i)长度- 8);我+ +)味精+= (字符) datcomments [i + 8];对话框。显示(味精,“通知”);

LEADTOOLS成像、医疗和文档
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领先技术公司版权所有