我有一个imagePickerController
用于从库中导入照片到我的应用程序。我可以通过截图检测导入的ALAsset照片吗?
当在ALAssetsLibraryAssetForURLResultBlock
,我试图找出我在块中的ALAsset是一张照片作为一个屏幕截图或是一张“真正”的照片,由相机拍摄。
我试图去通过ALAsset的元数据字典,但找不到任何标志/迹象表明可能适合。
任何人有任何想法?
我有一个imagePickerController
用于从库中导入照片到我的应用程序。我可以通过截图检测导入的ALAsset照片吗?
当在ALAssetsLibraryAssetForURLResultBlock
,我试图找出我在块中的ALAsset是一张照片作为一个屏幕截图或是一张“真正”的照片,由相机拍摄。
我试图去通过ALAsset的元数据字典,但找不到任何标志/迹象表明可能适合。
任何人有任何想法?
好,我是研究和试验..我已经找到了最接近的解决方案是基于一个事实,即iPhone屏幕截图不产生EXIF记录(而其他所有生成的照片做他们产生)。
因此,一旦照片在选择器中选择,我检查,如果照片的元数据包含了EXIF记录,如果它不 - 我的结论是照片是截图。
我发现它是“尽善尽美”的解决方案,现在,虽然它不是一个正式的一个。
干杯。
对于从网页保存的照片,也可能没有EXIF元数据。 – evanchin
添加元数据到的UIImage而保存到图片库。 UIImage的相同元数据可以用来知道它的截图是否。
谢谢,但我说的是另一个应用程序(而不是我的)拍摄的照片 - 我无法控制保存时写入的元数据.. – Guys
对于屏幕截图,它的UTI总是一个“public.png”,与屏幕尺寸相同(确保屏幕边界的宽度和高度上乘以[UIScreen scale]),只需要检查这2个元数据,就可以轻松识别截图。
因为你需要检查照片的大小是460 * 320那么从屏幕截图拍摄的照片我认为这是检测屏幕截图的唯一方法? –
@neonsamuel - 谢谢,但我不认为我们应该依靠的大小(特别是当iPhone 5的新比率是在这里...) – Guys
所以你需要包括为:-( –