Base64图像编码Swift 4 iOS

编程入门 行业动态 更新时间:2024-10-28 00:27:44
本文介绍了Base64图像编码Swift 4 iOS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有以下代码从库中选择一个图像,然后使用base64encode进行将来的上载...已选择该图像并根据需要显示在应用中...但是在输出中出现此错误

I have the following code to select an image from the library and then base64encode for future upload... image is selected and appears in app as I want... however in output I get this error

发现扩展时遇到[发现]错误:错误域= PlugInKit代码= 13查询已取消" UserInfo = {NSLocalizedDescription =查询已取消}

[discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled}

,如果我在输出中使用打印的base64代码并使用网络工具( www.base64decode/)尝试解码上述信息,以确认它是否起作用,然后再开始在iOS中开始进行解码-它似乎格式错误?我假设我没有正确编码图像吗?

and if I take the printed base64 code in output and use a webtool (www.base64decode/) to attempt to decode said info, to confirm it has worked, before I start to work on decoding in iOS later - it appears to be malformed ? I am assuming I am not correctly encoding the image still ?

@IBAction func selectImage(_ sender: AnyObject) { selectImage.allowsEditing = true //2 selectImage.sourceType = .photoLibrary //3 present(selectImage, animated: true, completion: nil)//4 } func imagePickerController(_ selectImage: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { let chosenImage = info[UIImagePickerControllerEditedImage] as! UIImage //2 profilePic.contentMode = .scaleAspectFit //3 profilePic.image = chosenImage //4 let quality = 1.0 base64String = (UIImageJPEGRepresentation(chosenImage, CGFloat(quality))?.base64EncodedString())! print (base64String) self.dismiss(animated: true, completion: nil) //5 }

推荐答案

我在我的项目中使用了这两个函数,并且运行正常.

I'm using these 2 functions in my project and it is working fine.

func imageTobase64(image: UIImage) -> String { var base64String = "" let cim = CIImage(image: image) if (cim != nil) { let imageData = image.highQualityJPEGNSData base64String = imageData.base64EncodedString(options: NSData.Base64EncodingOptions.lineLength64Characters) } return base64String } func base64ToImage(base64: String) -> UIImage { var img: UIImage = UIImage() if (!base64.isEmpty) { if let decodedData = Data(base64Encoded: base64 , options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data { let decodedimage = UIImage(data: decodedData) img = (decodedimage as UIImage?)! } } return img }

我还有一个扩展程序来处理可能有用的图像质量:

I have also an extension to handle image quality that can be useful:

extension UIImage { var highestQualityJPEGNSData:NSData { return UIImageJPEGRepresentation(self, 1.0)! as NSData } var highQualityJPEGNSData:NSData { return UIImageJPEGRepresentation(self, 0.75)! as NSData} var mediumQualityJPEGNSData:NSData { return UIImageJPEGRepresentation(self, 0.5)! as NSData } var lowQualityJPEGNSData:NSData { return UIImageJPEGRepresentation(self, 0.25)! as NSData} var lowestQualityJPEGNSData:NSData { return UIImageJPEGRepresentation(self, 0.0)! as NSData } }

//对于Swift 4.2-修改后的扩展

//For Swift 4.2 - modified extension

extension UIImage { var highestQualityJPEGNSData:NSData { return self.jpegData(compressionQuality: 1.0)! as NSData } var highQualityJPEGNSData:NSData { return self.jpegData(compressionQuality: 0.75)! as NSData} var mediumQualityJPEGNSData:NSData { return self.jpegData(compressionQuality: 0.5)! as NSData } var lowQualityJPEGNSData:NSData { return self.jpegData(compressionQuality: 0.25)! as NSData} var lowestQualityJPEGNSData:NSData { return self.jpegData(compressionQuality: 0.0)! as NSData } }

更多推荐

Base64图像编码Swift 4 iOS

本文发布于:2023-10-11 23:57:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483205.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图像   iOS   Swift

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!