无法从存储在照片库中的屏幕截图png文件获取创建日期

时间:2018-03-22 19:32:37

标签: properties png metadata tiff

我正在尝试使用PHPhotoLibrary获取存储在照片库中的图片的创建日期。该代码适用于所有图片,除了几个PNG文件,这些文件是通过单击主页和电源按钮在手机上创建的屏幕截图。当我遍历PHFetchResult并加载CIImage时,PNG文件不包含TIFF字典,其中包含所有其他JPG文件的创建日期。我已经广泛搜索了stackoverflow并发现了类似的问题,但还没有找到解决方案。我尝试以不同的方式加载文件,并在Build Settings中将压缩PNG文件设置设置为NO。当我遍历PHFetchResult中名为pic的PHAssets时,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

1 个答案:

答案 0 :(得分:0)

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

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

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