Swift 4,iOS-将图像保存/加载到设备相册(相机胶卷)而不进行压缩或未经修改?

时间:2018-11-02 22:57:33

标签: ios swift image compression uiimagepickercontroller

问题

我正在开发一个修改图像位(精确添加一些数据)的应用程序。 我想将修改后的图像保存到设备相册(相机胶卷)中,然后从那里加载以进行进一步修改

我实现了用于从设备照片中保存和加载图像的功能,可以很好地运行,但是我认为从相机胶卷中保存或加载图像会修改或压缩我的图像,因此我的应用无法解码以前所做的位修改


我尝试过的

我确定我的应用程序的图像修改功能可以正常工作-我在使用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。

任何帮助将不胜感激。.

0 个答案:

没有答案