iOS图像处理

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

2017-05-09  本文已影响2314人  langkee

前言

最近,在项目中遇到需要将图片(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, 相互讨论和学习!

上一篇下一篇

猜你喜欢

热点阅读