C#获取图像Exif信息
2013-05-10 16:04
405 查看
| |
来源:yocin 时间:2012-3-22 9:05:02 栏目:技术支持 点击率:492 | |
using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.Drawing.Imaging; namespace Console_Application { class Program { public static void Main(string[] args) { Dictionary<string,string> exif = new Dictionary<string,string>(); Image image = Image.FromFile(@"e:\www\test.jpg"); PropertyItem[] properties = image.PropertyItems; foreach(PropertyItem property in properties) { switch(property.Id) { //Exif case 0x010E: exif["ImageTitle"] = ASCIIToString(property.Value); break; case 0x010F: exif["Make"] = ASCIIToString(property.Value); break; case 0x0110: exif["Model"] = ASCIIToString(property.Value); break; case 0x0112: exif["Orientation"] = ShortToString(property.Value,0); break; case 0x011A: exif["XResolution"] = RationalToSingle(property.Value,0); break; case 0x011B: exif["YResolution"] = RationalToSingle(property.Value,0); break; case 0x0128: exif["ResolutionUnit"] = ShortToString(property.Value,0); break; case 0x0131: exif["Software"] = ASCIIToString(property.Value); break; case 0x0132: exif["DateTime"] = ASCIIToString(property.Value); break; //GPS case 0x0002: exif["GPSLatitude"] = string.Format("{0}°{1}′{2}″", RationalToSingle(property.Value,0), RationalToSingle(property.Value,8), RationalToSingle(property.Value,16) ); break; case 0x0004: exif["GPSLongitude"] = string.Format("{0}°{1}′{2}″", RationalToSingle(property.Value,0), RationalToSingle(property.Value,8), RationalToSingle(property.Value,16) ); break; case 0x0006: exif["GPSAltitude"] = RationalToSingle(property.Value,0); break; } } foreach(KeyValuePair<string, string> kvp in exif) Console.WriteLine(kvp.Key + ": " + kvp.Value); Console.ReadKey(true); } //Method static string ByteToString(byte[] b,int startindex) { if(startindex+1<=b.Length) return ((char)b[startindex]).ToString(); else return string.Empty; } static string ShortToString(byte[] b,int startindex) { if(startindex+2<=b.Length) return BitConverter.ToInt16(b,startindex).ToString(); else return string.Empty; } static string RationalToSingle(byte[] b,int startindex) { if(startindex+8<=b.Length) return (BitConverter.ToSingle(b,startindex)/BitConverter.ToSingle(b,startindex+4)).ToString(); else return string.Empty; } static string ASCIIToString(byte[] b) { return Encoding.ASCII.GetString(b); } } } |
相关文章推荐
- C#获取图像Exif信息
- C# 获取图片的EXIF 信息 .
- Java获取图像Exif信息
- c#使用ExifLib 提取图像的 EXIF信息
- C#编辑图像文件EXIF信息
- C# 如何获取照片中Exif信息里GPS信息与经纬度数
- C# 获取图片的EXIF 信息
- C# 获取图片的EXIF 信息
- C# 获取图片的EXIF 信息
- C#图片处理之: 获取数码相片的EXIF信息(二)
- gdalinfo获取图像的EXIF信息
- C# 图像处理:获取鼠标位置信息(全局)
- C#获取当前计算机的系统信息
- c#获取当前页面的url信息
- 用C#获取电脑硬件信息
- C#实现用Newtonsoft.Json 4.5.11解析人人网院校信息并获取院系信息
- C# 获取 MP3信息结构 的一个小例子(基于v1版的ID3)
- C#获取WAVE文件文件头信息
- C#获取本地计算机信息
- C# 获取文件大小,创建时间,文件信息,FileInfo类的属性表