iPhone 5 - Фоновые изображения

С новым разрешением экрана и соотношением сторон iPhone 5 кажется, что есть два подхода, чтобы использовать преимущества нового экрана при работе с изображениями, которые являются полноэкранными (или в основном полноэкранными) изображениями:

  • Включите два изображения bg@2x.png и bg-h568@2x.png и проверьте границы основного экрана устройства, чтобы определить, какой из них загрузить.
  • Включите только один файл, но сделайте его в полном разрешении iPhone 5

(Существуют и другие методы: растяжение, мозаика и / или рисование с помощью кварца.)

Обе эти опции имеют недостатки:

  • Включение двух файлов увеличит размер пакета вашего приложения
  • Загрузка изображения сетчатки iPhone 5 на 4 обрезает данные изображения при отображении на экране, но все равно будет потреблять такое же количество ресурсов памяти

Мне особенно интересно лучше понять детали второго недостатка.

Я думаю, что это спасло бы пакет приложений (и мой дизайнер), если бы я мог использовать эту идею консолидации изображений дальше...

Допустим, у меня есть изображение, которое занимает 320pt x 480pt в портретной ориентации и 480pt x 320pt в альбомной (ширина х высота).

(РЕДАКТИРОВАТЬ: Первоначально я не учел несколько других важных моментов. Ради полноты я включаю эти мысли здесь)

Если мы создадим один файл изображения с разрешением 480pt x 480pt вместо файлов альбомной и портретной ориентации, это лишит пакет приложений двух файлов, каждый из которых содержит область дублированных данных изображения 320pt x 320pt. Тем не менее, это большое квадратное изображение будет включать четыре квадранта 80pt x 80pt в углах, которые не будут видны. При прочих равных у нас должно быть на 20% меньше данных об изображении в комплекте приложений.

Перечитав "Эксперимент по авторам iBooks" Билла, можно легко определить требования к памяти:

  • Пейзаж или Портрет: 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 в значительной степени отвечает самому себе.:-)

1 ответ

Решение

Как правило, вы получаете это.

Предполагая, что у вас есть большое квадратное изображение и это какой-то мозаичный рисунок (лен и т. Д.), Вы можете использовать ImageIO для загрузки обрезанного изображения в нужном вам размере, что потребует дополнительной памяти для распаковки изображения, но после этого оно будет потреблять только что нужно для заполнения фона.

Я бы предложил против масштабирования изображения.

С другой стороны, отправка приложения с 3 изображениями (foo, foo@2x и foo-h568@2x) вместо 1 имеет смысл. Единственный способ сказать, что вы должны использовать одно изображение, это если вы близки к загрузке 3G/LTE (я думаю) 50 МБ.

Другие вопросы по тегам