Где находится изображение, снятое с iOS?

При использовании камеры по умолчанию в Swift я использую это, чтобы сделать снимок, а затем показать его в imageView:

@IBAction func takePhoto() {
    let picker = UIImagePickerController()

    picker.delegate = self
    picker.sourceType = .Camera

    self.presentViewController(picker, animated: true, completion: nil)
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    dismissViewControllerAnimated(true, completion: nil)
}

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

UIImage(named: UIImagePickerControllerOriginalImage)

UIImage(named: "spect a string here") и UIImagePickerControllerOriginalImage возвращают мне строку, поэтому я подумал, что это может быть изображение, но похоже, что это не сработает.


person Pixele9    schedule 27.12.2015    source источник
comment
Почему бы не сохранить imageView.image в переменной после установки imageView?   -  person Daniel    schedule 27.12.2015
comment
Как? Я два изображения: одно с моего компьютера (изображение по умолчанию, отображаемое в режиме просмотра изображений), а другое изображение — это то, которое вы можете сделать с помощью камеры.   -  person Pixele9    schedule 27.12.2015
comment
Я смущен. Отображает ли imageView изображение, которое вы только что сделали камерой, или это то, с чем у вас проблемы?   -  person Daniel    schedule 27.12.2015
comment
ImageView отображает изображение по умолчанию, когда вы еще не сделали никаких фотографий, давайте назовем его photoA, но затем, когда вы делаете фотографию photoB, imageView меняет отображаемое изображение с photoA на photoB, и я добавляю фильтры к изображению, поэтому я хочу знать, где я могу взять изображение, чтобы отобразить исходное изображение без воздействия фильтра   -  person Pixele9    schedule 27.12.2015
comment
Как насчет этого: сохраните изображение в переменной из imageView и затем добавьте фильтры.   -  person Daniel    schedule 27.12.2015
comment
Но как будет называться изображение или ссылка на изображение, которое я только что сделал?   -  person Pixele9    schedule 27.12.2015
comment
Хорошо, я вижу. Взгляните на ioscreator.com/tutorials/take-photo-tutorial- iOS8-быстро. Оно действительно короткое. Изображение, которое вы сделали это imageView.image. Это ваша константа.   -  person Daniel    schedule 27.12.2015
comment
Давайте продолжим обсуждение в чате.   -  person Pixele9    schedule 27.12.2015
comment
Мой ответ отвечает на ваш вопрос? Если да, не могли бы вы принять его? Если нет, скажите, я добавлю.   -  person Daniel    schedule 27.12.2015


Ответы (1)


Вы можете сказать что-то вроде:

var photo = UIImage() // Accessible from anywhere in the class
@IBAction func takePhoto() {
    let picker = UIImagePickerController()
    picker.delegate = self
    picker.sourceType = .Camera
    self.presentViewController(picker, animated: true, completion: nil)
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    photo = info[UIImagePickerControllerOriginalImage] as? UIImage // Assign `photo` to the image
}

В приведенном выше коде photo — это переменная, доступная из любого места в классе. Следовательно, он доступен из всех ваших функций и обработчиков. info[UIImagePickerControllerOriginalImage] as? UIImage — это изображение с камеры, а в коде вы меняете переменную photo на изображение с камеры. Теперь изображение с камеры доступно позже из любого места в этом классе.

person Daniel    schedule 27.12.2015