ios - 从本地 URL 获取图像 (iOS)

标签 ios photos

我正在使用 PHLibrary 使用 requestContentEditingInput 获取照片的 URL

asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions()) { (input, _) in
    let url = input?.fullSizeImageURL
}

此 URL 打印:file:///Users/josh/Library/Developer/CoreSimulator/Devices/EE65D986-55E7-414C-A73E-D1C96FF17004/data/Media/DCIM/100APPLE/IMG_0005.JPG

如何检索此图像?我试过以下但它没有返回任何东西:

var fileLocation = "file:///Users/josh/Library/Developer/CoreSimulator/Devices/EE65D986-55E7-414C-A73E-D1C96FF17004/data/Media/DCIM/100APPLE/IMG_0005.JPG"
let url = URL(string: fileLocation)
let asset = PHAsset.fetchAssets(withALAssetURLs: [url!], options: nil)
if let result = asset.firstObject  {
    //asset.firstObject does not exist
}

最佳答案

显然,即使在接受照片使用后,苹果也不允许开发者访问用户照片库中的任何照片。如果您正在使用尚未从 imagePicker 中选取的图像(即选择库中的最后一个图像),则必须先将图像存储在文档目录中,然后才能使用文档目录 URL。我想这可以防止人们侵入其他照片库

//Storing the image (in my case, when selecting last photo NOT via imagePicker)

let fileManager = FileManager.default
let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("image01.jpg")
let imageData = UIImageJPEGRepresentation(image!, 1.0)
fileManager.createFile(atPath: paths as String, contents: imageData, attributes: nil)


//Retrieving the image
let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
let nsUserDomainMask    = FileManager.SearchPathDomainMask.userDomainMask
let paths               = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
if let dirPath = paths.first {
    let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent("image01.jpg")
    if let imageRetrieved = UIImage(contentsOfFile: imageURL.path) {
        //do whatever you want with this image
        print(imageRetrieved)
    }
}

关于ios - 从本地 URL 获取图像 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44936353/

相关文章:

ios - Swift - 用数据填充 TableView

ios - 一个实体的 NSManagedObjectContextObjectsDidChangeNotification

android - 部分机器人上传乱码图片

ios - 为什么在应用程序的初始启动期间不显示照片?

ios - ALAssetsLibrary 似乎返回错误数量的照片

Android 相当于 iOS "scale to fill"

ios - 如何在iOS中使用Google Place API以GMSPlaces而不是GMSAutocompletePrediction的形式获取自动完成的搜索位置结果?

当我按下主页按钮然后恢复它时,ios7 应用程序崩溃

iphone - Xcode - Google Street View api 3D 全景图

ios - 使用 Swift (iOS) 和照片框架保存自定义图像的元数据