我有一個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
所以你需要包括爲:-( –