问题描述
Swift 给出无法为 AVCapturePhoto 创建 fileDataRepresentation 的错误。打印“照片”,返回照片的元数据。如何将图像转换为文件字节并最终转换为 base64?到目前为止,我尝试了很多方法,但都依赖于获取文件字节。感谢您提前回复!
@IBAction func takePhotoButtonpressed(_ sender: Any) {
let settings = AVCapturePhotoSettings()
let previewPixelType = settings.availablePreviewPhotoPixelFormatTypes.first!
let previewFormat = [kCVPixelBufferPixelFormatTypeKey as String: previewPixelType,kCVPixelBufferWidthKey as String: 160,kCVPixelBufferHeightKey as String: 160]
settings.previewPhotoFormat = previewFormat
settings.isHighResolutionPhotoEnabled = false
sessionOutput.capturePhoto(with: settings,delegate: self)
}
func photoOutput(_ output: AVCapturePhotoOutput,didFinishProcessingPhoto photo: AVCapturePhoto,error: Swift.Error?) {
let imageData = AVCapturePhoto.fileDataRepresentation()
解决方法
AVCapturePhoto.fileDataRepresentation 是一个 instance
方法,而不是一个 class
方法。
你必须像这样在 AVCapturePhoto
的实例上调用它 -
func photoOutput(_ output: AVCapturePhotoOutput,didFinishProcessingPhoto photo: AVCapturePhoto,error: Swift.Error?) {
let imageData = photo.fileDataRepresentation()
}