簡體   English   中英

快速將UIImage轉換為base64字符串

[英]Convert UIImage to base64 string in swift

我試圖將UIImage轉換為base64字符串,目的是將其上傳到后端服務器。

但是,我在本文中找到的轉換代碼(應該是Apple自己的實現)會生成無效的字符串:

在UIImage和Base64字符串之間轉換

上傳后,我得到此圖像:

[從iOS轉換為base64 1解碼的失敗圖像

代替這個:

[從在線base64轉換工具解碼的正確圖像2

我使用Postman測試了上傳結果,后端正確處理了有效的base64圖像,因此我將錯誤縮小到了base64轉換本身。 這是我的代碼:

public extension UIImage
{
     func base64Encode() -> String?
    {
        guard let imageData = UIImagePNGRepresentation(self) else
        {
            return nil
        }

        let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
        let fullBase64String = "data:image/png;base64,\(base64String))"

        return fullBase64String
    }
}

知道如何在將iOS設備上的base64輸出上載到服務器之前對其進行修復嗎?

做這樣的事情:

對於編碼:

data.base64EncodedStringWithOptions([])

對於解碼:

let url = URL(string: String(format:"data:application/octet-stream;base64,%@",base64String))
do {
    let data =  try Data(contentsOf: url!)
}catch {

}

對於Swift 4,做這樣的事情,

編碼-

let imgObj = UIImage(named: "photo")    
let imageData = UIImagePNGRepresentation(imgObj!)! as NSData
let base64 = imageData.base64EncodedData(options: .lineLength64Characters)

base64變量的數據類型為數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM