Загрузка изображений

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

Много изображений, используемых приложениями, включая изображения запуска и значки приложения, сохранены как файлы в основном пакете приложения. У Вас могут быть изображения запуска и значки, которые являются определенными для типа устройства (iPad по сравнению с iPhone и iPod touch) и оптимизированные для дисплеев с высокой разрешающей способностью. Можно найти полные описания этих связанных файлов образа в Усовершенствованных Приемах Приложения и Связанных с приложением Ресурсов в Руководстве по программированию Приложения для iOS. Обновление Ваших Файлов ресурсов Изображения обсуждает корректировки, делающие Ваши файлы образа совместимыми с экранами с высокой разрешающей способностью.

Кроме того, iOS предоставляет поддержку для загрузки и отображения изображений с помощью и UIKit и Базовых Графических платформ. Как Вы определяете, какие классы и функции для использования для рисования изображений зависит от того, как Вы намереваетесь использовать их. Каждый раз, когда возможно, тем не менее, рекомендуется использовать классы UIKit для представления изображений в коде. Таблица c-1 перечисляет некоторые сценарии использования и рекомендуемые опции для обработки их.

Табличные c-1  сценарии Использования для изображений

Сценарий

Рекомендуемое использование

Выведите на экран изображение как содержание представления

Используйте UIImageView класс для отображения изображения. Эта опция предполагает, что единственное содержание Вашего представления является изображением. Можно все еще разделить другие представления на уровни поверх представления изображения для рисования дополнительных средств управления или содержания.

Выведите на экран изображение как украшение для части представления

Загрузите и нарисуйте изображение с помощью UIImage класс.

Сохраните некоторые растровые данные в объект изображения

Можно сделать это использование функций UIKit или Базовых Графических функций, описанных в Создании Новых Изображений Используя Контексты Растрового изображения.

Сохраните образ как файл PNG или JPEG

Создайте a UIImage объект от данных исходного изображения. Вызовите UIImageJPEGRepresentation или UIImagePNGRepresentation функция для получения NSData объект и использование, что методы объекта для сохранения данных к файлу.

Системная поддержка изображений

Платформа UIKit, а также системные платформы низшего уровня iOS дает Вам широкий диапазон возможностей для создания, доступа, получения, записи и управления изображениями.

Классы изображения UIKit и функции

Платформа UIKit имеет три класса и один протокол, связанные с изображениями в некотором роде:

UIImage

Объекты этого класса представляют изображения в платформе UIKit. Можно создать их из нескольких других источников, включая Кварцевые объекты изображения и файлы. Методы класса позволяют Вам нарисовать изображения к текущему графическому контексту с помощью различных режимов смешивания и значений непрозрачности.

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

UIImageView

Объекты этого класса являются представлениями, выводящими на экран или единственное изображение или анимирующими серию изображений. Если изображение должно быть единственным содержанием представления, используйте UIImageView класс вместо того, чтобы рисовать изображение.

UIImagePickerController и UIImagePickerControllerDelegate

Этот класс и протокол дают Вашему приложению способ получить изображения (фотографии) и фильмы, предоставленные пользователем. Класс представляет и управляет пользовательскими интерфейсами для того, чтобы выбрать и сделать фотографии и фильмы. Когда пользователи выбирают фотографию, она поставляет выбранный UIImage возразите против делегата, который должен реализовать методы протокола.

В дополнение к этим классам UIKit объявляет функции, которые можно вызвать для выполнения множества задач с изображениями:

  • Вовлечение поддержанного изображением графического контекста. UIGraphicsBeginImageContext функция создает внеэкранный контекст растрового изображения. Можно нарисовать в этом графическом контексте и затем выдержке a UIImage объект от него. (См. Изображения Получения для получения дополнительной информации.)

  • Получение или кэширование данных изображения. Каждый UIImage объект имеет отступающий Базовый объект Графического изображения (CGImageRef) то, что можно получить доступ непосредственно. Можно тогда передать Базовый Графический объект Изображению платформа I/O для сохранения данных. Можно также преобразовать данные изображения в a UIImage возразите или против PNG или против формата JPEG путем вызова UIImagePNGRepresentation или UIImageJPEGRepresentation функции. Можно тогда получить доступ к байтам в объекте данных, и можно записать данные изображения в файл.

  • Запись изображения к Фотоальбому на устройстве. Вызовите UIImageWriteToSavedPhotosAlbum функция, передающая в a UIImage объект, для помещения того изображения в Фотоальбом на устройстве.

Рисование Изображений идентифицирует сценарии при использовании этих классов UIKit и функций.

Другие связанные с изображением платформы

Можно использовать несколько системных платформ кроме UIKit, чтобы создать, получить доступ, изменить, и записать изображения. Если Вы находите, что не можете выполнить определенную связанную с изображением задачу с помощью метода UIKit или функции, функция одной из этих платформ низшего уровня могла бы быть в состоянии, делают то, что Вы хотите. Некоторые из этих функций могли бы потребовать Базового объекта Графического изображения (CGImageRef). Можно получить доступ CGImageRef объект, отступающий a UIImage объект через CGImage свойство.

Базовая Графическая платформа Кварца является самой важной из системных платформ низшего уровня. Несколько из его функций соответствуют функциям UIKit и методам; например, в то время как другие позволяют Вам создать изображения из различных источников, некоторые Базовые Графические функции позволяют Вам создавать и рисовать к контекстам растрового изображения. Однако Базовая Графика предлагает больше опций для обработки изображений. С Базовой Графикой можно создать и применить маски изображения, создать изображения из частей существующих изображений, применить цветовые пространства и доступ много дополнительных атрибутов изображения, включая байты на строку, биты на пиксель и намерение рендеринга.

Изображение платформа I/O тесно связано с Базовой Графикой. Это позволяет приложению читать и писать большинство форматов файла образа, включая стандартные веб-форматы, изображения расширенного динамического диапазона и необработанные данные камеры. Это обладает быстрым кодированием изображения и декодированием, метаданными изображения и кэшированием изображения.

Библиотека активов является платформой, позволяющей приложению получать доступ к активам, которыми управляет фото приложение. Можно получить актив или представлением (например, PNG или JPEG) или URL. От представления или URL можно получить Базовый объект Графического изображения или необработанные данные изображения. Платформа также позволяет Вам записать изображения в Сохраненный фото Альбом.

Поддерживаемые форматы изображения

Таблица c-2 перечисляет форматы изображения, поддерживаемые непосредственно iOS. Из этих форматов формат PNG является тем, наиболее рекомендуемым для использования в Ваших приложениях. Обычно форматы изображения, что поддержки UIKit являются теми же форматами, поддерживаемыми Изображением платформа I/O.

Табличные c-2  Поддерживаемые форматы изображения

Формат

Расширения файла

Portable Network Graphic (PNG)

.png

Тегированный формат файлов изображений (TIFF)

.tiff или .tif

Совместная экспертная группа по фотографии (JPEG)

.jpeg или .jpg

Формат обмена графическими данными (GIF)

.gif

Формат Windows Bitmap (DIB)

.bmp или .BMPf

Windows Icon Format

.ico

Windows Cursor

.cur

Битовый массив XWindow

.xbm

Поддержание качества изображения

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