gpt4 book ai didi

android - iOS UIImagePNGRepresentation base64 编码没有给出预期的输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:11 28 4
gpt4 key购买 nike

代码

static func encodeImage(image: UIImage) -> String{
var imageData = UIImagePNGRepresentation(image)
let base64 = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)
return base64
}

没有返回预期的输出,当结果字符串用 Java 或使用在线工具解码时,复制的图像不是有效的 PNG 文件

这个答案在这里Base64 encoding in Swift will not decode in Android表明问题不在于编码,而是实际的 PNG 格式与 Android 使用的格式不同,iOS 似乎使用 sRGB 和 Android sBIT

有什么办法可以做到这一点

最佳答案

我在将图像转换为 base64 时也遇到了问题。但这是因为并非所有标志都能正确转义。所以我为它做了一个小函数,它总是对我有用:

func imageToBase64(imageToDecode: UIImage!) -> String {
var imageData = UIImageJPEGRepresentation(imageToDecode, 0.8)
var base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
base64String = base64String.stringByReplacingOccurrencesOfString("+", withString: "%2B", options: NSStringCompareOptions.LiteralSearch, range: nil)
base64String = base64String.stringByReplacingOccurrencesOfString("/", withString: "%2F", options: NSStringCompareOptions.LiteralSearch, range: nil)
return base64String
}

关于android - iOS UIImagePNGRepresentation base64 编码没有给出预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32092115/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com