C# 获取照片拍摄时间

找了好久才找到这个方法贴出来分享下,这个方法主要是获取照片的拍摄时间^_^

调用的时候如下;ALLNAME是照片的绝对路径...如果返回值为"N/A"说明照片不存在拍摄时间足够属性没有取到
 string time = GetTakePicDateTime(GetExifProperties(AllName));


//下面是完整的代码
 public static PropertyItem[] GetExifProperties(string fileName)
        {
            FileStream stream 
= new FileStream(fileName, FileMode.Open, FileAccess.Read);
            
//通过指定的数据流来创建Image
            System.Drawing.Image image = System.Drawing.Image.FromStream(stream, truefalse);
            PropertyItem[] r 
= image.PropertyItems;
             stream.Close();
            
return r;
        }

        
private string GetTakePicDateTime(System.Drawing.Imaging.PropertyItem[] parr)
        {
            Encoding ascii 
= Encoding.ASCII;
            
//遍历图像文件元数据,检索所有属性
            foreach (System.Drawing.Imaging.PropertyItem p in parr)
            {
                
//如果是PropertyTagDateTime,则返回该属性所对应的值
                if (p.Id == 0x0132)
                {
                    
return ascii.GetString(p.Value);
                }
            }
            
//若没有相关的EXIF信息则返回N/A
            return "N/A";
        }
posted @ 2009-09-18 10:48  weiling6586  阅读(1979)  评论(1编辑  收藏  举报