如何将 AVCaptureStillImageOutput 转换为 UIImage 并另存为 NSData?
How to convert AVCaptureStillImageOutput to UIImage and save as NSData?
我正在尝试使用我正在使用的应用程序发送照片,我已经让该应用程序拍照,然后当您点击发送时,它会发送您刚刚拍摄的照片以通过邮件发送。
但我不知道如何将类型为 AVCaptureStillImageOutput
的照片转换为 UIImage
并将其存储在 NSData
中以便将其用作附件addAttachmentData
。
我试过这样做:
let data: NSData = UIImagePNGRepresentation(image: stillImageOutput)
我有这个功能
func doSomethingWithImage(image: UIImage) {
// do something here
mc.addAttachmentData(UIImageJPEGRepresentation(UIImage(named: imageAsUIIMage)!, CGFloat(1.0))!, mimeType: "image/jpeg", fileName: "backupOne.jpeg")
}
但它向我显示错误,“使用未解析的标识符 'imageAsUIIMage'
我想获取 UIImage 以便通过电子邮件发送它。
您可以捕获图像并将其保存到文件并使用 stillImageOutput.captureStillImageAsynchronouslyFromConnection()
将其转换为 UIImage
// setup code
stillImageOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
captureSession.startRunning()
let connection = stillImageOutput.connectionWithMediaType(AVMediaTypeVideo)
stillImageOutput.captureStillImageAsynchronouslyFromConnection(connection) { (sampleBuffer, error) in
// NSData of jpeg data. Save to file and add as email attachment.
let jpegData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
dispatch_async(dispatch_get_main_queue(), {
self.doSomethingWithJPEGImageData(jpegData!)
})
}
// later on
func doSomethingWithJPEGImageData(jpegData: NSData) {
mc.addAttachmentData(jpegData, mimeType: "image/jpeg", fileName: "backupOne.jpeg")
}
我正在尝试使用我正在使用的应用程序发送照片,我已经让该应用程序拍照,然后当您点击发送时,它会发送您刚刚拍摄的照片以通过邮件发送。
但我不知道如何将类型为 AVCaptureStillImageOutput
的照片转换为 UIImage
并将其存储在 NSData
中以便将其用作附件addAttachmentData
。
我试过这样做:
let data: NSData = UIImagePNGRepresentation(image: stillImageOutput)
我有这个功能
func doSomethingWithImage(image: UIImage) {
// do something here
mc.addAttachmentData(UIImageJPEGRepresentation(UIImage(named: imageAsUIIMage)!, CGFloat(1.0))!, mimeType: "image/jpeg", fileName: "backupOne.jpeg")
}
但它向我显示错误,“使用未解析的标识符 'imageAsUIIMage'
我想获取 UIImage 以便通过电子邮件发送它。
您可以捕获图像并将其保存到文件并使用 stillImageOutput.captureStillImageAsynchronouslyFromConnection()
UIImage
// setup code
stillImageOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
captureSession.startRunning()
let connection = stillImageOutput.connectionWithMediaType(AVMediaTypeVideo)
stillImageOutput.captureStillImageAsynchronouslyFromConnection(connection) { (sampleBuffer, error) in
// NSData of jpeg data. Save to file and add as email attachment.
let jpegData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
dispatch_async(dispatch_get_main_queue(), {
self.doSomethingWithJPEGImageData(jpegData!)
})
}
// later on
func doSomethingWithJPEGImageData(jpegData: NSData) {
mc.addAttachmentData(jpegData, mimeType: "image/jpeg", fileName: "backupOne.jpeg")
}