[英]PhotoKit iOS8 - Retrieve image using the “PHImageFileURLKey”
[英]how to get image from PHImageFileURLKey
伙計們
我通過使用以下代碼從照片獲取圖像URL。
func getAllImagesURL() -> [URL]
{
var arr_URL = [URL]()
for index in 0..<fetchResult.count
{
imgManager.requestImageData(for: fetchResult.object(at: index) as PHAsset, options: requestOptions, resultHandler: { (imagedata, dataUTI, orientation, info) in
if let fileName = (info?["PHImageFileURLKey"] as? URL)
{
//do sth with file name
arr_URL.append(fileName)
}
})
}
return arr_URL
}
通過使用此URL密鑰,我想從照片中獲取圖像。我搜索並找到了下面的代碼,但仍然無法正常工作。
func getImage(assetUrl: URL) -> UIImage? {
let asset = PHAsset.fetchAssets(withALAssetURLs: [assetUrl], options: nil)
guard let result = asset.firstObject else {
return nil
}
var assetImage: UIImage?
let options = PHImageRequestOptions()
options.isSynchronous = true
PHImageManager.default().requestImage(for: result, targetSize: UIScreen.main.bounds.size, contentMode: PHImageContentMode.aspectFill, options: options) { image, info in
assetImage = image
}
return assetImage
}
它返回nil,所以請幫助我。如何使用URL密鑰獲取圖像。
提前致謝..
在getImage(assetUrl: URL) -> UIImage?
方法,您正在使用
let asset = PHAsset.fetchAssets(withALAssetURLs: [assetUrl], options: nil)
如果您正在使用AssetsLibrary,則assetUrl
是應該從中獲取的url。 從iOS 9.0起不推薦使用此庫。 我們必須改為使用照片庫。
順便說一句,您已經在getAllImageURLs()
方法中獲取了所有圖像(數據)。 只需轉換該方法即可獲取所有圖像並根據需要處理這些圖像。 您可以使用以下方法獲取所有圖像。
func getAllImages() -> [UIImage]?
{
let imgManager = PHImageManager.default()
let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = true
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending: true)]
let fetchResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: fetchOptions)
var allImages = [UIImage]()
for index in 0..<fetchResult.count
{
let asset = fetchResult.object(at: index) as PHAsset
imgManager.requestImage(for: asset, targetSize: UIScreen.main.bounds.size, contentMode: .aspectFill, options: requestOptions, resultHandler: { (uiimage, info) in
allImages.append(uiimage!)
})
}
return allImages
}
注意:根據您的要求調整此方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.