←选择平台

RasterMarkerMetadata类

总结
扩展了RasterMetadata类提供处理存储在各种图像文件格式中的标记元数据的功能。
语法
c#
VB
objective - c
c++
Java
[SerializableAttribute ()]公共RasterMarkerMetadata:RasterMetadata
< SerializableAttribute () >公共RasterMarkerMetadata继承了RasterMetadata
@接口LTRasterMarkerMetadata: LTRasterMetadata
公共RasterMarkerMetadata扩展RasterMetadata实现了可序列化的
[SerializableAttribute ()]公共ref类RasterMarkerMetadata:公共RasterMetadata
讲话

JPEG文件包含用户自定义标记中的元数据信息。

用户自定义标记的范围为0xE0到0xFE。这些标记的最大大小可以是0xFFFD,或者65533字节。

在0xE0下面的标记是为图像编码保留的,插入保留标记会使文件无效。因此,除非您非常熟悉JPEG文件中的标记和图像编码,否则不应该使用保留标记。

TIFF文件不包含标记,但是,LEADTOOLS提供了将Exif注释从JPEG文件传输到TIFF文件的“变通方法”,反之亦然。TIFF文件中的Exif元数据信息将作为APP1标记加载。因此,可以从未压缩的文件加载Exif元数据,并将其存储在压缩的Exif文件中。

还可以从压缩的Exif文件中获取元数据信息,并将其存储在未压缩的Exif文件中。但是请注意,有些信息不能存储在未压缩的Exif文件中。例如,音频数据存储在APP2标记中,并且没有内置支持将APP2标记保存在TIFF文件中。但是,您仍然可以使用自定义标记保存音频数据。

例子

本例将向现有TIF文件写入不同的标记,然后将它们作为测试读取。

c#
VB
使用Leadtools;使用Leadtools.Codecs;公共无效RasterMarkerMetadataExample ()RasterCodecs codecs =RasterCodecs ();编解码器。ThrowExceptionsOnInvalidImages =真正的字符串srcFileName = Path.Combine(LEAD_VARS.ImagesDir,“Image1.cmp”);字符串destFileName = Path.Combine(LEAD_VARS.ImagesDir,“Image1_markers.tif”);//加载图像RasterImage image = codecs.Load(srcFileName);编解码器。保存(image, destFileName, RasterImageFormat.)ExifJpeg、24);image.Dispose ();//写入一个标记到文件RasterMarkerMetadata markerWrite =RasterMarkerMetadata ();字节[] data =字节[100];intI = 0;i < data.Length;我+ +)数据[i] = (字节)(i + 1);markerWrite。Id = 0xE0;markerWrite.SetData(数据);控制台。WriteLine (“书写标记”);编解码器。WriteMarker(destFileName, 1, marker);//从文件中读取标记并检查我们的标记IList markers = codecs.ReadMarkers(destFileName);RasterMarkerMetadata markerRead =intI = 0;我<标记。数&& markerRead ==;我+ +)如果(标记[我]。Id==markerWrite。Id)markerRead =标记[i];Assert.IsTrue (markerRead。Id == markerWrite.Id);字节[] dataRead = markerRead.GetData();字节[] dataWrite = markerWrite.GetData();Assert.IsTrue (dataRead。长度==dataWrite.Length);intI = 0;i < datread . length;我+ +)断言。是真正的(dataRead[i] == dataWrite[i]);codecs.Dispose ();静态LEAD_VARS公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”
进口Leadtools进口Leadtools。编解码器公共RasterMarkerMetadataExample ()昏暗的编解码器作为RasterCodecs =RasterCodecs ()编解码器。ThrowExceptionsOnInvalidImages =真正的昏暗的srcFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1.cmp”昏暗的destFileName作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Image1_markers.tif”载入图像昏暗的图像作为RasterImage = codecs.Load(srcFileName)编解码器。保存(image, destFileName, RasterImageFormat.)ExifJpeg, 24)image.Dispose ()向文件中写入标记昏暗的markerWrite作为RasterMarkerMetadata =RasterMarkerMetadata ()昏暗的数据作为字节() =字节(99) {}昏暗的作为整数= 0I < data。长度数据(我)=CByte(i + 1)I += 1循环markerWrite。Id = &HE0markerWrite.SetData(数据)控制台。WriteLine (“书写标记”编解码器。WriteMarker(destFileName, 1, marker)“从文件中读取标记,并检查我们的标记昏暗的标记作为IList(Of RasterMarkerMetadata) = codecs.ReadMarkers(destFileName)昏暗的markerRead作为RasterMarkerMetadata =没有什么I = 0我<标记。需要说明markerRead没有什么如果标记(我)。Id=markerWrite。Id然后markerRead =标记(i)结束如果I += 1循环Debug.Assert (markerRead。Id = markerWrite.Id)昏暗的dataRead作为字节() = marker . getdata ()昏暗的dataWrite作为字节() = kerwrite . getdata ()Debug.Assert (dataRead。长度=dataWrite.Length)I = 0i < dataRead。长度Debug.Assert(dataRead(i) = dataWrite(i))I += 1循环结束公共NotInheritableLEAD_VARS公共常量ImagesDir作为字符串“C: \ LEADTOOLS21 \ Resources \图片”结束
需求

目标平台

Leadtools组装
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。