我可以通过截图检测导入的ALAsset照片吗?
我有一个imagePickerController
用于从库中导入照片到我的应用程序。
当在ALAssetsLibraryAssetForURLResultBlock
,我试图找出我在块中获得的ALAsset是作为屏幕截图拍摄的照片,还是照相机拍摄的“真正”照片。
我试图通过ALAsset的元数据字典,但找不到任何可能适合的标志/指示。
有人有主意吗?
对于屏幕截图来说,它的UTI总是一个“public.png”,与屏幕尺寸相同(确保你在屏幕边界宽度和高度上乘以[UIScreen scale]),只需要检查这2个元数据,就可以轻松识别屏幕截图。
将元数据添加到UIImage,同时保存到照片库 。 UIImage的相同的元数据可以用来知道它的截图是否。
请参阅Save_Photo_to_Album_with_Metadata
那么,我正在研究和试验..而我发现的最接近的解决scheme是基于这样一个事实,即iPhone屏幕截图不会产生EXIFlogging(而所有其他生成的照片都会生成它们)。
因此,一旦在拾取器中select了一张照片,我正在检查照片的元数据是否包含EXIFlogging,如果没有 – 我得出结论:照片是截图。
现在我发现它是“尽善尽美”的解决scheme,尽pipe它不是官方的解决scheme。
干杯。