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。UserComment
Dim comments As String =“图像被翻转了”
Dim data() As Char =注释。comments.Length ToCharArray (0)
昏暗的数据评论(8 +评论。长度- 1)作为字节
’当你需要写用户评论的前8个字节
必须包含“Ascii”词。
datcomments (0) = 41
datcomments (1) = 53
datcomments (2) = 43
datcomments (3) = 49
datcomments (4) = 49
dataccomments (5) = 0
dataccomments (6) = 0
dataccomments (7) = 0
For i As Integer = 0 To comments。长度- 1
dataccomments (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。长度- 7
msg = 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];
对话框。显示(味精,“通知”);
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网页浏览器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送到支持!应该有人联系你!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至五
上午8:30 -下午6点
如需联系我们,请填写此表格,我们将通过电子邮件与您联系。