Глава 13. Камера и библиотека фотографий

Глава 13. Камера и библиотека фотографий

13.0. Введение

Большинство устройств с операционной системой iOS, допустим iPhone, оборудованы камерами. У самого нового iPhone две камеры, у других моделей может быть всего по одной. Некоторые устройства с операционной системой iOS не оснащены камерами. Класс UIImagePickerController позволяет программисту отображать для пользователя привычный интерфейс Camera и предлагать сделать снимок или записать видео. Фотографии или видеозаписи, выполненные с помощью класса UIImagePickerController, становятся доступны программисту.

В этой главе будет рассказано, как обеспечить пользователю возможность снимать фотографии и записывать видео прямо из приложения, получать доступ к фотографиям и видео, размещенным в библиотеке фотографий (Photo Library) на устройстве с iOS, например на iPod touch или iPad.

В симуляторе iOS интерфейс Camera не поддерживается. Все приложения, в которых требуется применять этот интерфейс, следует тестировать и отлаживать на настоящем устройстве с iOS, которое оборудовано камерой.

В этой главе мы сначала попытаемся определить, имеется ли камера на том устройстве с iOS, где используется наше приложение. Кроме того, вы можете выяснить, позволяет ли камера вам (программисту) делать фотоснимки, записывать видео или доступны обе эти функции. Для этого необходимо добавить фреймворк MobileCoreServices.framework к целевой сборке. Просто импортируйте его обобщающий фреймворк в ваше приложение, вот так:

#import «AppDelegate.h»

#import <MobileCoreServices/MobileCoreServices.h>

@implementation AppDelegate

<# Остаток вашего кода находится здесь #>

Далее перейдем к изучению других тем, в частности рассмотрим доступ к видео и фотографиям, расположенным в различных альбомах на устройстве с iOS. Речь идет о тех же самых альбомах, в которые можно попасть через приложение Photos (Фотографии), интегрированное в операционную систему iOS.

Но получить доступ к фотографии, находящейся в альбоме, проще, чем к видеозаписи. При работе с фотографиями мы получим адрес снимка и сможем просто загрузить эту информацию об изображении в экземпляр NSData либо прямо в экземпляр UIImage. В аналогичном случае с видео мы не получим адрес, по которому файл находится в файловой системе и с которого можно загрузить нужное видео. Вместо этого получим примерно такой адрес:

assets-library://asset/asset.MOV?id=10000 00004&ext=MOV

При работе с подобными адресами необходимо использовать фреймворк Assets Library (Библиотека ресурсов). Библиотека ресурсов открывает нам доступ к контенту, который обычно предоставляется через приложение Photos (Фотографии). Это, например, фотографии и видеоролики, отснятые пользователем. Кроме того, библиотека ресурсов может применяться для сохранения изображений и видео на устройстве. Потом эти фотографии и ролики будут доступны для библиотеки фотографий (Photo Library), а также других приложений, которым требуется доступ к этому контенту.

Чтобы все коды из этой главы правильно компилировались, убедитесь, что фреймворки Assets Library и Mobile Core Services включены во все ваши файлы с исходным кодом. Для этого можно импортировать заголовочные файлы в файлы с исходным кодом. Предполагается, что вы работаете с последней версией компилятора LLVM, в котором поддерживается работа с модулями:

#import «AppDelegate.h»

#import <MobileCoreServices/MobileCoreServices.h>

#import <AssetsLibrary/AssetsLibrary.h>

@implementation AppDelegate

<# Остаток вашего кода находится здесь #>

Чтобы все коды из этой главы правильно компилировались, выполните следующие шаги — так вы добавите в ваш проект фреймворк Assets Library.

1. В Xcode щелкните на ярлыке проекта.

2. Выберите цель, к которой вы хотите добавить фреймворк.

3. В верхней части интерфейса выберите Build Phases (Этапы сборки).

4. Нажмите кнопку + в нижнем левом углу раздела Link Binaries with Libraries (Связать двоичные файлы с библиотеками).

5. Выберите из списка фреймворк MobileCoreServices.framework.

6. Нажмите Add (Добавить).

Чтобы получить доступ к данным ресурса, имея ссылку на этот ресурс, выполните следующие шаги.

1. Выделите и инициализируйте объект типа ALAssetsLibrary. Объект из библиотеки ресурсов предоставляет специальную перемычку (Bridge), обеспечивающую доступ к тем видеороликам и фотографиям, которые доступны для приложения Photos (Фотографии).

2. Для доступа к ресурсу воспользуйтесь методом экземпляра assetForURL: resultBlock: failureBlock, относящимся к объекту библиотеки ресурсов (выделение и инициализация этого объекта были выполнены на шаге 1). Ресурс может представлять собой изображение, видео или любой другой объект, который Apple потенциально может добавить в библиотеку фотографий. Этот метод работает с блоковыми объектами. Подробнее о блоковых объектах и GCD рассказано в главе 7.

3. Высвободите тот объект библиотеки ресурсов, который был выделен и инициализирован на шаге 1.

На этом этапе у вас может возникнуть вопрос: как же именно я получаю доступ к данным ресурса? Параметр resultBlock метода экземпляра assetForURL: resultBlock: failureBlock, относящегося к объекту библиотеки ресурсов, должен указывать на блоковый объект, принимающий единственный параметр типа ALAsset. ALAsset — это класс, предоставляемый в библиотеке ресурсов, он инкапсулирует (включает в себя) ресурс, доступный для Photos (Фотографии) или любого другого приложения iOS, пытающегося использовать этот ресурс. Тема сохранения фотоснимков и видеороликов в библиотеке фотографий более подробно рассмотрена в разделах 13.4 и 13.5. О получении фотографий и видео из библиотеки фотографий и библиотеки ресурсов подробнее рассказано в разделах 13.6 и 13.7.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Глава 6 Библиотека GNU C

Из книги автора

Глава 6 Библиотека GNU C Библиотека GNU С (glibc) — это стандартная библиотека языка С, разработанная для Linux-систем. Существуют и другие библиотеки С, которые иногда используются в определенных целях (например, очень маленькое подмножество стандартных библиотек С применяется


Глава 25 Библиотека хешированных баз данных

Из книги автора

Глава 25 Библиотека хешированных баз данных Приложениям часто необходимо хранить некоторую разновидность бинарных данных в файлах. Хранение таких данных, когда во главу угла ставится задача эффективного их извлечения, отличается сложностью и слабой устойчивостью к


ГЛАВА 15. Библиотека Ext Core и объекты Web-обозревателя 

Из книги автора

ГЛАВА 15. Библиотека Ext Core и объекты Web-обозревателя  В предыдущей главе мы узнали, как создается поведение Web-страниц, и познакомились с Web-сценариями и языком программирования JavaScript, на котором они пишутся. Еще мы написали два простых Web-сценария, один из которых выводил на


ГЛАВА 15. Библиотека Ext Core и объекты Web-обозревателя

Из книги автора

ГЛАВА 15. Библиотека Ext Core и объекты Web-обозревателя В предыдущей главе мы узнали, как создается поведение Web-страниц, и познакомились с Web-сценариями и языком программирования JavaScript, на котором они пишутся. Еще мы написали два простых Web-сценария, один из которых выводил на


Глава 23 Разработка графического приложения: библиотека GTK+

Из книги автора

Глава 23 Разработка графического приложения: библиотека GTK+ Сейчас мы поговорим о создании графического интерфейса для вашей Linux-программы. Как вы знаете, средствами одного С нормальный GUI не построишь, тем более что привычный пользователь Windows очень требователен не просто


Web-камера

Из книги автора

Web-камера Не спешите покупать Web-камеру, если у вас есть обычная видеокамера, сначала проверьте, может ли она работать в режиме Web-камеры. Для этого посмотрите ее настройки, особенно те, которые связаны с USB-портом, потому что все Web-камеры подключаются к компьютеру именно


Глава 9 Обработка цифровых фотографий

Из книги автора

Глава 9 Обработка цифровых фотографий ? Управление цветопередачей.? Управление освещением.? Управление резкостью.? Устранение артефактов с фотографии.? Устранение эффекта красных глаз.Современным любителям фотографии вряд ли знакомы те проблемы, которые приходилось


Глава 9 Среда разработки: библиотека базовых классов

Из книги автора

Глава 9 Среда разработки: библиотека базовых классов Основным преимуществом объектно-ориентированных языков программирования, таких, как C++ и Smalltalk, является высокая степень повторного использования в хорошо спроектированных системах. Это означает, что для разработки


Глава 18 Дополнительная обработка фотографий

Из книги автора

Глава 18 Дополнительная обработка фотографий В этой главе мы познакомимся с различными способами придания фотографиям более интересного вида или большей привлекательности и информативности для тех, кто будет их просматривать.Кадрирование изображенияВо многих случаях


Глава 19 Отправка фотографий по электронной почте, публикация в Интернете, создание индекса снимков

Из книги автора

Глава 19 Отправка фотографий по электронной почте, публикация в Интернете, создание индекса снимков В этой небольшой главе мы познакомимся с тем, как подготовить фотографию к отправке по электронной почте и к размещению в Интернете. Так как эта книга посвящена прежде


Камера

Из книги автора

Камера Команда CAMERA устанавливает камеру и положение цели для создания и сохранения трехмерного вида объектов в перспективе и вызывается из падающего меню View ? Create Camera или щелчком на пиктограмме Create Camera на плавающей панели инструментов View.Запросы команды CAMERA: Current camera


Камера

Из книги автора

Камера Команда CAMERA устанавливает камеру и положение цели для создания и сохранения трехмерного вида объектов в перспективе и вызывается из падающего меню View ? Create Camera или щелчком на пиктограмме Create Camera на плавающей панели инструментов View.Запросы команды


Веб-камера

Из книги автора

Веб-камера Веб-камера – цифровая камера, встроенная в крышку ноутбука над экраном (редко – как отдельный модуль). При высокоскоростном подключении позволяет выполнять видеотелефонный звонок, например, по Skype. Такая встроенная камера обычно имеет разрешение не более


Глава 6 Виды микростоковых фотографий

Из книги автора

Глава 6 Виды микростоковых фотографий Иногда можно столкнуться с ошибочным мнением по поводу того, что микростоковые снимки относятся к какому-то отдельному виду фотографии, вроде свадебного, портретного или пейзажного фото. На самом деле микростоковые работы


Глава 2 Камера и компьютер

Из книги автора

Глава 2 Камера и компьютер 2.1. Способы передачи изображений на компьютер2.2. Передача изображений с камеры на компьютер2.3. Программы для просмотра и редактирования


Web-камера

Из книги автора

Web-камера Гораздо интереснее, когда вы делаете изображения с цифровой видеокамеры доступными через Интернет в реальном времени. Внезапно камера превращается из простого средства видеонаблюдения в потенциальные глаза и уши миллионов людей на планете.Первая