iOS拍照并转换为Base64字符串

时间:2015-11-03 09:17:01

标签: ios image swift base64

我有一个简单的照片拍摄应用程序,我需要它非常简单地将imageData转换为base64编码的字符串,这就是我所做的:

if let videoConnection = stillImageOutput.connectionWithMediaType(AVMediaTypeVideo){
    stillImageOutput.captureStillImageAsynchronouslyFromConnection(videoConnection) { (imageDataSampleBuffer, error) in
        self.imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataSampleBuffer)
        let base64String = self.imageData.base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
        print(base64String)
    }
}

我希望这会产生类似于这样的字符串:

%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHB...

然而,我得到的东西看起来像这样:

<2f396a2f 34414151 536b5a4a 52674142 41514141 53414249 4141442f 345142...

我做错了什么?

为了澄清,我正在拍照,我可以使用:

self.image = UIImage(data: self.imageData) 
UIImageWriteToSavedPhotosAlbum(self.image, self, nil, nil)

要将其保存到设备中,所以照片肯定存在。

1 个答案:

答案 0 :(得分:2)

谢谢@johny,你的回答是正确的!

解决方案就是使用它:

base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

而不是:

base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0))