美文网首页iOS图像处理
Swift将图片UIImage与base64字符串相互转化

Swift将图片UIImage与base64字符串相互转化

作者: langkee | 来源:发表于2017-05-09 19:25 被阅读2314次

    前言

    最近,在项目中遇到需要将图片(UIImage)转化成base64位的字符串, 然后上传到服务器, 虽然网上也有很多关于该技术的博客,但是swift版的少之又少,为了方便在入门swift的小伙伴们,或者说为了方便以后自己的回顾,就简单在此记录一下。

    </br>

    图片 转化成 base64 字符串

    // 获取图片
    let image = UIImage(named: "picture.png")
    
    // 将图片转化成Data
    let imageData = UIImagePNGRepresentation(image!)
    
    // 将Data转化成 base64的字符串
    let imageBase64String = imageData?.base64EncodedString()
    
    // 可以使用base64的String类型上传到server了
    print("UIImage is converted to base64 String successfully, imageBase64String is: \(imageBase64String)")
    

    注:你也可以使用UIImageJPEGRepresentation("这里是图片", “这里是压缩图片值,为CGFloat类型”)来将UIImage转化成Data类型,两者方法计算出来的图片的大小有着一定的区别。 另外,将图片Data转化成base64字符串的时候,建议使用默认值base64EncodedString()转化就好,无需使用.base64EncodedData(options: "设置选择类型")画蛇添足! base64 字符串转化成 图片同理!

    </br>

    base64 字符串转化成 图片

    // 将 base64的图片字符串转化成Data
    let imageData2 = Data(base64Encoded: imageBase64String!)
    
    // 将Data转化成图片
    let image2 = UIImage(data: imageData2!)
    
    // 可以使用图片image2了
    print("base64 image string is converted to UIImage successfully, now image is: \(String(describing: image2))")
    

    注: base64EncodedData括号内的options: Data.Base64EncodingOptions>选择类型是Base64EncodingOptions, 它是一个结构体,遵循协议OptionSet, 它有4个结构体成员变量。

    </br>

    欢迎加入 iOS(swift)开发互助群:QQ群号: 558179558, 相互讨论和学习!

    相关文章

      网友评论

        本文标题:Swift将图片UIImage与base64字符串相互转化

        本文链接:https://www.haomeiwen.com/subject/tnsitxtx.html