iOS, получение ручки для изображения, только что снятого камерой устройства - PullRequest
1 голос
/ 14 марта 2012

Может ли кто-нибудь сказать мне, как именно я могу получить ручку для изображения, которое пользователь только что сделал с помощью камеры устройства?Например, когда пользователь захватывает изображение, оно сохраняется в библиотеке фотографий, но вы не знаете точное имя файла изображения, не перейдя в библиотеку фотографий и не выполнив поиск изображения.Я хочу получить дескриптор изображения, как только оно будет снято, и затем передать его в UIImage, чтобы я мог, например, немедленно отобразить его пользователю.

Спасибо

1 Ответ

0 голосов
/ 14 марта 2012

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

Если вы используете UIImagePickerController для захвата неподвижного изображения с помощью UIImagePickerControllerSourceTypeCamera установить в качестве источника.Вы получите звонок на свой DELEGATE, когда будет сделан снимок.

- (void) imagePickerController: (UIImagePickerController *) picker

            didFinishPickingMediaWithInfo: (NSDictionary *) info

Здесь вы можете найти изображение, которое вы можете использовать для непосредственного представления.(Изображение находится в словаре «информации»)

https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/CameraAndPhotoLib_TopicsForIOS/Articles/TakingPicturesAndMovies.html#//apple_ref/doc/uid/TP40010406

Проверьте код на этом сайте Apple, чтобы увидеть, как он реализован.

Альтернативно метод № 2с помощью AVFoundation Framework.Однако для этого требуется гораздо больше настроек, даже если это дает больше свободы в настройке.

В конце реализации вы получите такую ​​картинку:

 [stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:

    ^(CMSampleBufferRef imageSampleBuffer, NSError *error) {

        CFDictionaryRef exifAttachments =

            CMGetAttachment(imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);

        if (exifAttachments) {

            // Do something with the attachments.

        }

        // Continue as appropriate.

    }];

Здесь изображение находится в imageSamplerBuffer.

Этот подход можно найти здесь: https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html

...