WPF中使用InPlaceBitmapMetadataWriter在图片中插入元数据(metadata)

原创 2007年09月11日 19:56:00

 BitmapFrame支持CreateInPlaceBitmapMetadataWriter方法在图片中写入元数据(metadata)信息。
比如:

Stream pngStream = new System.IO.FileStream("Johnson.png", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
PngBitmapDecoder pngDecoder = new PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapFrame pngFrame = pngDecoder.Frames[0];
InPlaceBitmapMetadataWriter pngInplace = pngFrame.CreateInPlaceBitmapMetadataWriter();
if (pngInplace.TrySave() == true)
{ pngInplace.SetQuery("/Text/Description", "Happy every day!"); }
pngStream.Close();

使用SetQueryGetQuery方法可以创建和读取元数据(metadata)。
如上面,你可以使用pngInplace.GetQuery("/Text/Description").ToString();得到元数据。

又如tiff的元数据设置:
BitmapMetadata tiffMetadata = new BitmapMetadata("tiff");
tiffMetadata.SetQuery("/ifd/{ushort=1000}", 9999);
tiffMetadata.SetQuery("/ifd/{uint=1001}", 23456);
tiffMetadata.SetQuery("/ifd/{uint=1002}", 34567);
tiffMetadata.SetQuery("/ifd/PaddingSchema:padding", (UInt32)4096);
tiffMetadata.SetQuery("/ifd/exif", new BitmapMetadata("exif"));
tiffMetadata.SetQuery("/ifd/exif/PaddingSchema:padding", (UInt32)4096);

查看图片的元数据时,你还可以使用BitmapFrame的Metadata属性

如果你对Adobe的XMP感兴趣,你可以查阅读:
Extensible Metadata Platform (XMP) http://www.adobe.com/products/xmp/index.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android中读取图片EXIF元数据之metadata-extractor的使用

首先介绍一下什么是EXIF,EXIF是 Exchangeable Image File 的缩写,这是一种专门为数码相机照片设定的格式。这种格式可以用来记录数字照片的属性信息,如相机的品牌及型号、相片的...

Java读取图片Metadata元数据Exif

2016年3月Java读取图片Metadata元数据Exif(maven下载包配置)   转自:2016年3月Java读取图片Metadata元数据Exif package image;  im...

Flex 元数据(metadata)的使用

虽然多数Flex开发者都使用过[Bindable]标签,但是很多人都不知道这个标签的作用甚至不知道该标签为何物。[Bindable]就是所谓的元数据标签。元数据标签是一种特殊的标签,它在代码中的作用就...

元数据(MetaData)

元数据是用来描述数据的数据(Data that describes other data)。单单这样说,不太好理解,我来举个例子。 下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子: ...
  • ktutu
  • ktutu
  • 2017-06-05 09:54
  • 114

元数据(MetaData)

元数据是用来描述数据的数据(Data that describes other data)。单单这样说,不太好理解,我来举个例子。 下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子...

元数据(MetaData)

元数据是用来描述数据的数据(Data that describes other data)。单单这样说,不太好理解,我来举个例子。 下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子: ...

JAVA学习笔记(五十五)- 元数据 MetaData和可滚动的结果集

元数据 Meta Data/* * 元数据 Meta Data */ public class Test03 { Connection conn = null; PreparedS...

Mybatis源码研究6:元数据(metadata)

原理分析之六:元数据(metadata)   一、依赖关系   本包对mybatis的其它包没有任何依赖,mybatis的其它包也不依赖于本包,   即本包可以作为单独的组件或者工具类提出来...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)