2015-11-03 2 views
2

У меня есть простые фото принимая приложение и мне нужно, чтобы это очень просто преобразовать ImageData в кодировке Base64, это то, что я делаю:IOS взять фото и конвертировать в 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

Попробуйте так: http://stackoverflow.com/questions/24769074/base64encodedstringwithoptions-in-swift-fails -with-compile-error –

+0

работал как шарм, спасибо, товарищ –

ответ

2

Спасибо @johny, ответ был верным!

Решение было использовать это:

base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength) 

Вместо этого:

base64EncodedDataWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 
+0

не проблема, брось, хорошо, ваша проблема решена. –