я выбрал изображение с камеры или галереи и как сохранить это изображение для отображения в другом представлении? - PullRequest
0 голосов
/ 21 октября 2019

Я сделал все, чтобы получить изображение с камеры или галереи, но как сохранить это изображение в массиве или в области данных для отображения в другом viewController.

Как я могу это сделать?

Программа: -

 //Camera to save image and display later
 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    showImage.image = info[UIImagePickerController.InfoKey.originalImage]
    imagePicker.dismiss(animated: true, completion: nil)

   }

Ответы [ 2 ]

1 голос
/ 21 октября 2019

Если вы не хотите сохранять изображение в приложении и просто хотите сохранить изображение для отображения в другом контроллере представления, вы можете просто передать это изображение в другой контроллер представления.

let viewContrller = OtherViewController() //the view controller you need to pass image to
viewController.image = image //the image you need to pass to other view controller
navigationController(push: vc, animated: true)

Чтобы сохранить изображениев каталоге документов ...

func saveImage(withName name: String) {
        let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

        // create the destination file url to save your image
        let fileURL = documentsDirectory.appendingPathComponent(fileName)

        // get your UIImage jpeg data representation and check if the destination file url already exists
        if let data = image.jpegData(compressionQuality:  1.0),
            !FileManager.default.fileExists(atPath: fileURL.path) {
            do {
                // writes the image data to disk
                try data.write(to: fileURL)
                print("file saved")
            } catch {
                print("error saving file:", error)
            }
        }
    }

Таким образом, вы можете отобразить сохраненное изображение в другом контроллере представления.

func getImageFromDocDir(named imgName: String) -> UIImage? {

    let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

    // create the destination file url to save your image
    let fileURL = documentsDirectory.appendingPathComponent(imgName)
    if FileManager.default.fileExists(atPath: fileURL.path) {

        do {
            let imgData = try Data(contentsOf: fileURL)
            return UIImage(data: imgData)
        } catch {
            print(error.localizedDescription)
        }
    }

    return nil
}
1 голос
/ 21 октября 2019

Вы можете сохранить изображение как Data, скажем, у вас есть pickedImage.

let imageData = pickedImage.pngData()

сохранить imageData в царство.

Чтобы получить изображение

let savedImage = UIImage(data: imageData)
...