[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文件写入不同的标记,然后将它们作为测试读取。
使用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);//从文件中读取标记并检查我们的标记IListmarkers = 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) {}昏暗的我作为整数= 0做而I < 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 = 0做而i < dataRead。长度Debug.Assert(dataRead(i) = dataWrite(i))I += 1循环结束子公共NotInheritable类LEAD_VARS公共常量ImagesDir作为字符串=“C: \ LEADTOOLS21 \ Resources \图片”结束类
帮助收藏
光栅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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。
