.NET : 如何读取图片中的元数据信息
2009-11-23 03:24
323 查看
如果我们希望在程序中对图片中包含的一些元数据信息进行读取,并作为后期分析的准备。那么可以参考下面这个例子
http://www.codeproject.com/KB/graphics/photoproperties.aspx
我在这基础上也做了一个范例,如下图的效果
代码大致如下
private void btSelectImageFile_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Image File (*.jpg)|*.jpg";
if (dialog.ShowDialog() == DialogResult.OK)
{
pbImage.Image = Image.FromFile(dialog.FileName); JSG.PhotoPropertiesLibrary.PhotoProperties p = new JSG.PhotoPropertiesLibrary.PhotoProperties();
p.Initialize();
p.Analyze(dialog.FileName);
JSG.PhotoPropertiesLibrary.ResultOptions options = new JSG.PhotoPropertiesLibrary.ResultOptions(); MemoryStream ms = new MemoryStream();
p.WriteXml(ms, options);
if (ms.CanRead == false)
{
byte[] buffer = ms.GetBuffer();
ms = new MemoryStream(buffer);
} XDocument doc = XDocument.Load(new XmlTextReader(ms), LoadOptions.PreserveWhitespace); var query = from x in doc.Descendants("tagDatum")
select new
{
Id = x.Attribute("id").Value,
Category = x.Attribute("category").Value,
Name = x.Element("name").Value,
Description = x.Element("description").Value,
Value = x.Element("value").Value
}; dgvProperties.DataSource = query.ToArray(); }
}
http://www.codeproject.com/KB/graphics/photoproperties.aspx
我在这基础上也做了一个范例,如下图的效果
代码大致如下
private void btSelectImageFile_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Image File (*.jpg)|*.jpg";
if (dialog.ShowDialog() == DialogResult.OK)
{
pbImage.Image = Image.FromFile(dialog.FileName); JSG.PhotoPropertiesLibrary.PhotoProperties p = new JSG.PhotoPropertiesLibrary.PhotoProperties();
p.Initialize();
p.Analyze(dialog.FileName);
JSG.PhotoPropertiesLibrary.ResultOptions options = new JSG.PhotoPropertiesLibrary.ResultOptions(); MemoryStream ms = new MemoryStream();
p.WriteXml(ms, options);
if (ms.CanRead == false)
{
byte[] buffer = ms.GetBuffer();
ms = new MemoryStream(buffer);
} XDocument doc = XDocument.Load(new XmlTextReader(ms), LoadOptions.PreserveWhitespace); var query = from x in doc.Descendants("tagDatum")
select new
{
Id = x.Attribute("id").Value,
Category = x.Attribute("category").Value,
Name = x.Element("name").Value,
Description = x.Element("description").Value,
Value = x.Element("value").Value
}; dgvProperties.DataSource = query.ToArray(); }
}
相关文章推荐
- .NET : 如何读取图片中的元数据信息
- 数码照片的JPG文件高级信息(用C#读取图片的EXIF信息)-.NET教程,C#语言
- .NET : 如何读取数据库中的bmp图片数据
- .NET : 如何读取数据库中的bmp图片数据
- 在.Net里如何读取数据库图片
- c# 如何将图片信息从数据库中读取出来放入pictureBox1中:
- .NET如何读取注册信息
- Flex的Image控件中如何在读取图片文件错误时显示一个tool tip的例子
- .NET : 如何获取磁盘文件的摘要信息
- 在.net中使用强类型来读取配置信息
- Android 如何以流的方式读取图片文件
- 在android studio中如何读取asserts中图片、文件
- .NET : 如何使用Base 64存取图片
- .NET读取数据库说明信息
- [转]android点滴之NFC手机如何轻松读取银行卡信息?
- PHP读取EXCEL文件(包括资源型的图片信息)
- 批处理:如何逐行读取txt中每行的信息并显示
- PHP 教程之如何使用BLOB存取图片信息实例
- FFMPEG Tips (3) 如何读取每一帧的信息
- 如何把接口配置信息存在本地并从文件中读取配置信息