我有一個iOS應用程序,其中有2種方式,用戶可以得到一個畫面:如何從UIImage獲取URL?
從照片庫中選擇它(
UIImagePickerController
)從定製的相機點擊它
這裏是我的代碼點擊自定義相機的圖像(這是在一個名爲Camera
,這是一個UIView
的子類的自定義類)
func clickPicture(completion:@escaping (UIImage) -> Void) {
guard let videoConnection = stillImageOutput?.connection(withMediaType: AVMediaTypeVideo) else { return }
videoConnection.videoOrientation = .portrait
stillImageOutput?.captureStillImageAsynchronously(from: videoConnection, completionHandler: { (sampleBuffer, error) -> Void in
guard let buffer = sampleBuffer else { return }
let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer)
let dataProvider = CGDataProvider(data: imageData! as CFData)
let cgImageRef = CGImage(jpegDataProviderSource: dataProvider!, decode: nil, shouldInterpolate: true, intent: .defaultIntent)
let image = UIImage(cgImage: cgImageRef!, scale: 1, orientation: .right)
completion(image)
})
}
這裏是我點擊ViewController
內的圖像:
@IBAction func clickImage(_ sender: AnyObject) {
cameraView.clickPicture { (image) in
//use "image" variable
}
}
後來,我嘗試上傳使用CloudKit
此圖片到用戶的iCloud帳戶。但是,我收到一條錯誤消息,稱該記錄太大。然後我遇到了this SO post,它說使用CKAsset
。但是,CKAsset
的唯一構造函數需要URL
。
有沒有一種通用的方法,我可以從任何UIImage
得到URL
?否則,如何從我使用自定義相機單擊的圖像(我看到其他posts關於從UIImagePickerController
獲取網址)中獲得URL
?謝謝!
我怎麼會創建一個臨時位置網址? – penatheboss