簡體   English   中英

如何將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")
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM