С новым разрешением экрана и соотношением сторон iPhone 5 кажется, что есть два подхода к использованию преимуществ нового экрана при обработке изображений, которые являются полноэкранными (или в основном полноэкранными) изображениями:
- Включите два изображения [email protected] и [email protected] и проверьте границы главного экрана устройства, чтобы выяснить, какое из них загружать.
- Включите только один файл, но сделайте его с полным разрешением iPhone 5.
(Есть и другие методы: растягивание, мозаика и/или рисование с помощью Quartz.)
Оба этих варианта имеют недостатки:
- Включение двух файлов увеличит размер пакета вашего приложения.
- Загрузка изображения сетчатки iPhone 5 на iPhone 4 обрезает данные изображения при отображении на экране, но все равно будет потреблять такое же количество ресурсов памяти.
Мне особенно интересно лучше понять детали второго недостатка.
Я думаю, что это спасло бы пакет приложений (и моего дизайнера), если бы я мог использовать эту идею консолидации изображений дальше...
Допустим, у меня есть изображение размером 320 x 480 пикселей в портретной ориентации и 480 x 320 пикселей в альбомной ориентации (ширина x высота).
(РЕДАКТИРОВАТЬ: изначально я не учел пару других важных моментов. Для полноты картины я включил эти мысли сюда)
Если мы создадим один файл изображения с разрешением 480 x 480 пикселей вместо альбомных и портретных файлов, это предотвратит наличие в комплекте приложений двух файлов, каждый из которых содержит область 320 x 320 пикселей с повторяющимися данными изображения. Однако это большое квадратное изображение будет включать в себя четыре квадранта размером 80 x 80 пикселей в углах, которые не будут видны. При прочих равных у нас должно быть на 20 % меньше графических данных в комплекте приложений.
Перечитав Билла "iBooks Author Experiment", требования к памяти очень просты. выяснить:
- Пейзаж или портрет:
640 * 960 * 4 = 2,457,600 - Большая площадь:
960 * 960 * 4 = 3,686,400
Память, необходимая для загрузки большого квадрата, на 50% больше, чем для загрузки изображения, размер которого соответствует размеру экрана. Очевидно, что экономия на пакете приложений несоизмерима с такой экономией ресурсов!
Но как насчет того, чтобы расширить это до гигантского квадрата, который будет охватывать iPhone 5 и iPhone 4 — 568pt x 568pt? Вместо четырех файлов (iP4 альбомная, iP4 портретная, iP5 альбомная, iP5 портретная) в комплекте приложения будет только один файл (гигантский квадрат). Экономия может составить около 60%.
А как насчет ресурсов?
- iPhone 5 Пейзаж или Портрет:
1136 * 640 * 4 = 2,908,160 - Гигантская площадь:
1136 * 1136 * 4 = 5,161,984
Это на 110 % больше памяти для iPhone 4 и на 77,5 % больше памяти для iPhone 5.
Мой первоначальный вопрос состоял примерно из двух частей: 1. Правильно ли я понимаю это и 2. Является ли этот компромисс разумным.
Я надеюсь, что мои правки (подстрекаемые ответом Билла) показывают, что теперь я понимаю этот материал. И, если новое найденное знание верно, то № 2 в значительной степени отвечает сам за себя. :-)