我正在开发一个修改图像位(精确添加一些数据)的应用程序。 我想将修改后的图像保存到设备相册(相机胶卷)中,然后从那里加载以进行进一步修改。
我实现了用于从设备照片中保存和加载图像的功能,可以很好地运行,但是我认为从相机胶卷中保存或加载图像会修改或压缩我的图像,因此我的应用无法解码以前所做的位修改 。
我确定我的应用程序的图像修改功能可以正常工作-我在使用FileManager保存和加载的图像上进行了测试。
我用于从“相机胶卷”保存和加载图像的功能:
保存图像:
func saveImageToCameraRoll(image: UIImage) {
PHPhotoLibrary.shared().performChanges({
PHAssetChangeRequest.creationRequestForAsset(from: image)
}, completionHandler: { success, error in
if success {
print("save success")
}
else if let error = error {
print("save error \(error)")
}
else {
print("save ok")
}
})
}
使用imagePicker加载图像:
let imagePicker = UIImagePickerController()
@IBOutlet weak var imageView: UIImageView!
@IBAction func loadImageBtnTapped(_ sender: Any) {
imagePicker.allowsEditing = false
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.contentMode = .scaleAspectFit
imageView.image = pickedImage
}
dismiss(animated: true, completion: nil)
}
两者都能正常工作:当加载的图像出现在我的应用程序的imageView中时,保存的图像在设备照片中可见。但是正如我在上面解释的那样,图像经过了某种方式的修改,因此位表示与以前不同。
所以问题是:
是否可以从设备相机胶卷保存或加载未压缩或未修改的图像?
,还是可以选择图像压缩以保存到不会修改我的图像位的相机胶卷(即PNG或TIFF)中?
我目前正在使用Swift 4,但可以轻松升级到4.2。
任何帮助将不胜感激。.