2016-10-19 3 views
-1

데이터가 Base64로 저장되므로 UIImageUIImageView에서 문자열로 변환하려고합니다. 아래의 메서드를 사용하여 이미지를 변환하고 있지만 convertedStr을 업데이트하려고하면 넘어집니다.NSII를 통해 UIImage를 NSSString으로 변환 할 때 오류가 발생합니다.

func convertImg() { 
    let imageData: NSData = UIImagePNGRepresentation(imageView.image!)! as NSData 
    convertedStr = NSString(data: imageData as Data, encoding: String.Encoding.utf8.rawValue)! 
} 

이 기능은 다른 방법을 시도했지만 결과는 항상 동일하므로 버전 10에 대한 것입니다. 반환 된 오류는

'fatal error: unexpectedly found nil while unwrapping an Optional value' and

'function signature specialization) ->() to @callee_owned (@unowned Swift.UnsafeBufferPointer) -> (@out()), Argument Types : [@callee_owned (@unowned Swift.UnsafeBufferPointer) ->()]> of generic specialization of Swift.StaticString.withUTF8Buffer ((Swift.UnsafeBufferPointer) -> A) -> A'

그것이 내가 사용하는 방법은 PNG 파일을 필요로하고 UIImage 작동하지 않을 수 있을까입니까? 신속한에서

+2

(NS) 데이터가있는'base64EncodedString() '에있어서 어느 당신이 찾고있는 것일 수도 있습니다. - 픽셀 데이터를 UTF-8 문자열로 해석하는 것은 실패 할 수 있습니다. –

+0

이미지를 서버에 게시해야합니까? – KKRocks

+0

확인 : http://stackoverflow.com/questions/11251340/convert-between-uiimage-and-base64-string?answertab=votes#tab-top – KKRocks

답변

1

SWIFT 2.0

인코딩 하부

let image : UIImage = UIImage(named:"imageNameHere")! 
//Now use image to create into NSData format 
let imageData:NSData = UIImagePNGRepresentation(image)! 

let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) 

디코드

let dataDecoded:NSData = NSData(base64EncodedString: strBase64, options: NSDataBase64DecodingOptions(rawValue: 0))! 
let decodedimage:UIImage = UIImage(data: dataDecoded)! 
print(decodedimage) 
yourImageView.image = decodedimage 
+0

감사합니다. – user616076

1
func convertImg() { 
    let imageData: NSData = UIImagePNGRepresentation(imageView.image!)! as NSData 
    convertstr = imageData.base64EncodedString(options: lineLength64Characters) 

} 
관련 문제