• 获取照片的拍摄日期


    整理照片是个麻烦事情。这几天有一批照片需要整理。需要按照拍摄日期进行重命名。经过文件复制之后,文件本身的日期早已面目全非,但是现在的相机的好处是会自动记录照片的很多独立的详细信息,比如照片的拍摄日期。那么怎么才能取到这些信息呢?一番查找,知道这些信息好像是叫做“EXIF”的格式信息。这个网站有它们的详细说明,基本上,每项信息包括ID,数值以及类型和长度等信息。这里我只关心拍摄日期。ID代表数据名称,比如16进制0x0132, 0x9003, 0x9004应该就代表拍摄日期,但具体区别我还不是很清楚,我怎么知道的那个值?从上面提到的那个网站里查到的,当然里面内容很长,看起来也有些复杂,我只是找到了它,然后一试才知道是正确的。知道了ID,那么对应的值是怎样的呢? .NET Framework的Image类已经提供了PropertyItems集合,帮我们把这些信息按照ID建立了数组,而每个ID对应的值则是byte[],也就是说,具体的可读内容,需要根据具体的数据类型自己去转换了。对于拍摄日期,谢天谢地,这byte[]不难解析,直接转换为ASCII字符串就是。

    这是代码:

    Image img = Image.FromFile(@"C:\Users\Protoss\Pictures\WP_000028.jpg");
    System.Drawing.Imaging.PropertyItem[] items = img.PropertyItems;
    string DateToken = System.Text.Encoding.ASCII.GetString(items.First(i => i.Id == 0x9003 || i.Id == 0x9004 || i.Id == 0x0132).Value);




    理解的越多,需要记忆的就越少
  • 相关阅读:
    React之React.cloneElement
    HTB-靶机-Vault
    HTB-靶机-Curling
    HTB-靶机-Zipper
    HTB-靶机-Frolic
    HTB-靶机-Carrier
    HTB-靶机-Oz
    HTB-靶机-Dab
    HTB-靶机-Waldo
    HTB-靶机-Reddish
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/2256488.html
Copyright © 2020-2023  润新知