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, 相互讨论和学习!