我有一个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