我有一个简单的照片拍摄应用程序,我需要它非常简单地将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)
要将其保存到设备中,所以照片肯定存在。
答案 0 :(得分:2)
谢谢@johny,你的回答是正确的!
解决方案就是使用它:
base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
而不是:
base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0))