我想将Coreml模型的模型输出保存到画廊中。它输出一个mlmultiarray,该mlmultiarray被转换为uiimage以在设备上显示结果图像。现在,我想将该图像保存到手机的内存中。"隐私 - 图库用法描述"one_answers"隐私 - 媒体库描述"中存在。已经找到了一些类似的问题,但无法解决问题。我尝试了以下功能:
func saveImage() {
let imageData = UIImagePNGRepresentation(imageView.image!)
let compressedImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil)
let alert = UIAlertController(title: "Saved", message: "Your image has been saved", preferredStyle: .alert)
let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
alert.addAction(okAction)
self.present(alert, animated: true, completion: nil)
}
问题是,模型输出的结果映像始终显示在设备上,但是当我尝试保存image View.image中包含的映像时,函数uiimagepngrepresentation((始终返回nil。
来自苹果文档:
func UIImagePNGRepresentation(_ image: UIImage) -> Data?
如果图像没有数据或基础CGIMAGEREF包含不支持的位图格式的数据,则此功能可能会返回无。
https://developer.apple.com/documentation/uikit/1624096-uiimagepngrepresentation