在我的swift应用中,我需要将图像转换为字符串,然后我需要发送到服务器,即POST。然后,如果我需要GET,我不想解码它。具有图像文件名和路径的响应。
ONline Converter:
如果我通过在线转换器转换样本图像,这里。我得到了下面的字符串。如果我把这个字符串传递给API,我可以成功地获得图像。
输出:
iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR .... ..... CIBhIIgQRCIIEQSCAQAgmEQAIhkEAIJBAIgQRCIIEQSCAEEgiEQAIhkEAIJCgN/F + AAQAXoGXl + IGgwwAAAABJRU5ErkJggg = =
Through My Coding
如果我通过编码转换样例图像,我得到以下字符串。如果我把这个字符串传递给API,成功添加。但是,我无法在浏览器中手动查看该图像。
More Over,,两个输出字符串不相同。我不知道为什么?请指导我,如何解决这个问题?
代码:
var image : UIImage = UIImage(named: "home_recharge.png")!
var imageData = UIImagePNGRepresentation(image)
let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)
println("base64String (base64String)")
输出:
iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAABIAAAAKAAAAEgAAABIAAAKygzM7MwAAAqWSURBVHgB7FwJ0JZDHC9yhJTkLuRMjuQ + opAr5zjGqAwZx ...... ....... FlIs5ASSDNQLA7EMtYMpBlICaQZKBYHYhlrBtIMpATSDBSLA7GMNQNpBlICaQaKxYFYxpqBNAMpgTQDxeJALGPNQJqBlECagWJxIJaxZiDNQP8B + 6 mktad9ntcaaaaasuvork5cyii =
您使用png图像表示,但服务器将图像保存为.jpg
扩展名,因此浏览器尝试将图像读取为JPEG文件并失败。
您应该将UIImagePNGRepresentation
替换为UIImageJPEGRepresentation
或将图像保存为.png
扩展名。
浏览器可以打开在线转换器结果图像的原因,尽管它有错误的扩展可能是UIImagePNGRepresentation剥离图像的元数据和在线转换器没有,所以浏览器不能计算出真实类型的图像与错误的扩展没有元数据。