2012-10-18 61 views
4

我有一個imagePickerController用於從庫中導入照片到我的應用程序。我可以通過截圖檢測導入的ALAsset照片嗎?

當在ALAssetsLibraryAssetForURLResultBlock,我試圖找出我在塊中的ALAsset是一張照片作爲一個屏幕截圖或是一張「真正」的照片,由相機拍攝。

我試圖去通過ALAsset的元數據字典,但找不到任何標誌/跡象表明可能適合。

任何人有任何想法?

+0

因爲你需要檢查照片的大小是460 * 320那麼從屏幕截圖拍攝的照片我認爲這是檢測屏幕截圖的唯一方法? –

+0

@neonsamuel - 謝謝,但我不認爲我們應該依靠的大小(特別是當iPhone 5的新比率是在這裏...) – Guys

+0

所以你需要包括爲:-( –

回答

0

好,我是研究和試驗..我已經找到了最接近的解決方案是基於一個事實,即iPhone屏幕截圖不產生EXIF記錄(而其他所有生成的照片做他們產生)。

因此,一旦照片在選擇器中選擇,我檢查,如果照片的元數據包含了EXIF記錄,如果它不 - 我的結論是照片是截圖。

我發現它是「盡善盡美」的解決方案,現在,雖然它不是一個正式的一個。

乾杯。

+1

對於從網頁保存的照片,也可能沒有EXIF元數據。 – evanchin

0

添加元數據的UIImage保存到圖片庫。 UIImage的相同元數據可以用來知道它的截圖是否。

參考Save_Photo_to_Album_with_Metadata

+0

謝謝,但我說的是另一個應用程序(而不是我的)拍攝的照片 - 我無法控制保存時寫入的元數據.. – Guys

2

對於屏幕截圖,它的UTI總是一個「public.png」,與屏幕尺寸相同(確保屏幕邊界的寬度和高度上乘以[UIScreen scale]),只需要檢查這2個元數據,就可以輕鬆識別截圖。

相關問題