簡體   English   中英

快速將圖像轉換為 BASE64 字符串

[英]Converting Image to BASE64 String in swift

我正在嘗試轉換用戶從他的照片或從相機中獲取新的圖像。 我能夠將圖像轉換為 base64 字符串,但問題是它需要太多時間並打印一個長的無限字符串

這是我得到的字符串的輸出

在此處輸入圖片說明

這是我的代碼:

// Image picker from Gallery
    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
        imagePicker.dismissViewControllerAnimated(true, completion: nil)
        profileImage.image = image

    }

    // Image Picker from Camera

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        imagePicker.dismissViewControllerAnimated(true, completion: nil)
        profileImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage

        addPicBtn.setImage(nil, forState: .Normal)

        let imageData:NSData = UIImagePNGRepresentation(profileImage.image!)!
        let imageStr = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
        print(imageStr)


    }

實際上轉換不需要時間,但打印需要更多時間,所以不要打印......

您可以應用此代碼

let imageData: Data? = UIImageJPEGRepresentation(getImage(), 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(strBase64)

斯威夫特 4 版本。 這個簡單的函數對我來說效果很好。 使用此確認解碼圖像: https : //codebeautify.org/base64-to-image-converter希望這對某人有所幫助。

public static func  convertImageToBase64String(image : UIImage ) -> String 
{
    let strBase64 =  image.pngData()?.base64EncodedString()
    return strBase64!
}

首先確保您的圖片擴展名。

//.png

    guard let imageData = UIImagePNGRepresentation(UIImage) else {
        return ""
    }

//.JPEG

   guard let imageData = UIImageJPEGRepresentation(UIImage, 1) else {
                return ""
    }

// 基數 64

  imageData.base64EncodedString()
let imageData: Data? = UIImageJPEGRepresentation(YourImage, 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(imageStr,"imageString")

打印 imageStr 后,您將獲得如下圖所示的巨大輸出,這意味着您已成功完成。

暫無
暫無

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

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