我可以检测是否通过屏幕截图获取了导入的ALAsset照片吗?

时间:2012-10-18 11:33:26

标签: iphone objective-c ios alassetslibrary

我有imagePickerController用于将照片从库导入我的应用程序。

ALAssetsLibraryAssetForURLResultBlock时,我试图找出我在块中的ALAsset是拍摄的照片,还是照片拍摄的“真品”照片

我试图浏览ALAsset的元数据字典,但找不到任何适合的标记/指示。

有人有什么想法吗?

3 个答案:

答案 0 :(得分:3)

对于截图,它的UTI总是一个“public.png”和屏幕相同的大小(确保你在屏幕边界宽度和高度上有多个[UIScreen scale]),只需要检查这两个元数据,你就可以轻松识别屏幕截图。

答案 1 :(得分:0)

元数据添加到 UIImage ,同时保存到照片库。可以使用UIImage的相同元数据来了解其屏幕截图。

参考Save_Photo_to_Album_with_Metadata

答案 2 :(得分:0)

好吧,我正在研究和试验..我发现最接近的解决方案是基于iPhone截图不会产生EXIF记录的事实(而所有其他生成的照片都会生成它们)。

因此,一旦在选择器中选择了一张照片,我就会检查照片的元数据是否包含EXIF记录,如果没有,我会认为该照片是截图。

我发现它现在是“尽可能好”的解决方案,虽然它不是正式的。

干杯。