编码字符串在swift

时间:2015-10-06 15:02:33

标签: swift uiimage uiimagepngrepresentation

在我的swift App中,我需要将Image转换为String,然后我需要发送到Server,即POST。然后,如果我需要GET,我不想解码。响应具有图像文件名和路径。

ONline Converter:

如果我通过在线转换器转换样本图像,HERE.我正在跟踪字符串。如果我将此字符串传递给API,我可以成功获取图像。

输出:

... iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR ..... CIBhIIgQRCIIEQSCAQAgmEQAIhkEAIJBAIgQRCIIEQSCAEEgiEQAIhkEAIJCgN / F + AAQAXoGXl + IGgwwAAAABJRU5ErkJggg ==

通过我的编码

如果我通过编码转换样本图像,我会得到以下字符串。如果我将此字符串传递给API,则成功添加。但是,我也无法在浏览器中手动查看该图像。

更多,两个输出字符串不相同。我不知道为什么?请指导我,如何解决这个问题?

代码:

var image : UIImage = UIImage(named: "home_recharge.png")!
        var imageData = UIImagePNGRepresentation(image)
        let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)
        println("base64String    \(base64String)")

输出:

iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAABIAAAAKAAAAEgAAABIAAAKygzM7MwAAAqWSURBVHgB7FwJ0JZDHC9yhJTkLuRMjuQ + opAr5zjGqAwZx ...... ....... FlIs5ASSDNQLA7EMtYMpBlICaQZKBYHYhlrBtIMpATSDBSLA7GMNQNpBlICaQaKxYFYxpqBNAMpgTQDxeJALGPNQJqBlECagWJxIJaxZiDNQP8B + 6MkTad9NtcAAAAASUVORK5CYII =

1 个答案:

答案 0 :(得分:1)

您使用png图像表示但服务器使用.jpg扩展名保存图像,以便浏览器尝试将图像作为JPEG文件读取并失败。

您应该将UIImagePNGRepresentation替换为UIImageJPEGRepresentation或使用.png扩展名保存图片。

浏览器可以打开在线转换结果图像,尽管它有错误的扩展名可能是UIImagePNGRepresentation剥离其元数据和在线转换器的图像,因此浏览器无法在没有元数据的情况下找出具有错误扩展名的实际图像类型。