【问题标题】:Cannot get creation date from screenshot png file stored in Photo Library无法从存储在照片库中的屏幕截图 png 文件中获取创建日期
【发布时间】:2018-03-22 19:32:36
【问题描述】:

我正在尝试使用 PHPhotoLibrary 获取存储在照片库中的图片的创建日期。该代码适用于所有图片,除了通过单击主页和电源按钮在手机上创建为屏幕截图的几个 PNG 文件。当我遍历 PHFetchResult 并加载 CIImage 时,PNG 文件不包含 TIFF 字典,其中包含所有其他 JPG 文件的创建日期。我已经广泛搜索了stackoverflow,发现了类似的问题,但还没有找到解决方案。我尝试以不同的方式加载文件,并且还在 Build Settings 中将 compress PNG files 设置设置为 NO。当我在 PHFetchResult 中遍历名为 pic 的 PHAsset 时,PNG 图像属性返回一个只有五个元素且没有 TIFF 字典的字典。 JPG 文件都返回一个更大的字典,包括 TIFF 字典,我可以在其中找到创建日期。这是我当前的代码,它为 PNG 文件返回一个空的 pictiff 字典:

                    [imagemanager requestImageDataForAsset:pic options:ro resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {

                    CIImage *ciimage = [CIImage imageWithData:imageData];
                    NSMutableDictionary *exif = [NSMutableDictionary dictionary];
                    [exif addEntriesFromDictionary:ciimage.properties];

                    // Get file name
                    NSURL *picpath = [info objectForKey:@"PHImageFileURLKey"];
                    NSString *myfilename = [picpath lastPathComponent];

                    // Get creation date
                    NSDictionary *pictiff = exif[@"{TIFF}"];
                    NSString *picdate = pictiff[@"DateTime"];

非常感谢有关获取这些 PNG 文件的创建日期的帮助。

部署目标 8.0、Xcode 7.3.1、iPhone 6、iOS 8.4

【问题讨论】:

  • 使用pngcheck 或类似程序检查任何元数据。如果没有,那么唯一的“日期”在 OS 文件数据中。
  • 没有 (AFAIK) 以 PNG 格式存储 Exif (TIFF) 数据的标准方法(如果建议,'eXIf',但它不在 W3C/ISO 标准中,因此不多用过的)。不过,如果 XMP 数据存在(在带有 'XML:com.adobe.xmp'关键字的 'iTXt' 块中),您可能会从 XMP 数据中获得相同的信息。

标签: properties png metadata tiff


【解决方案1】:

好吧,我希望我可以从同一个对象中获取所有图片的文件名和创建日期,但我做不到。我仍然不知道为什么 PNG 文件中没有 TIFF 字典,所以我使用了这些答案:

获取创建日期:How to get photo creation date in objective c

获取文件名:iOS8 Photos Framework: How to get the name(or filename) of a PHAsset?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 2020-03-19
    • 2018-03-02
    • 2012-07-09
    相关资源
    最近更新 更多