我正在尝试使用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
答案 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?