Подтвердить что ты не робот

Зачем мне нужны изображения 1x, @2x и @3x iOS?

Зачем нам нужны эти 3 типа изображений?

Если у меня есть кнопка в моем приложении с фоновым изображением, скажем, 50 пикселей x 50 пикселей, зачем мне 3 версии этого изображения? Что мешает мне просто сделать одно изображение намного выше в res, скажем, 700x700, поэтому, когда он сжимается на любом iPhone, он не упадет до максимального значения, которое потребуется устройству?

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

4b9b3361

Ответ 1

Если у вас нет точного размера, возможны две вещи:

Upscaling

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

Спустившиеся

В общем, результаты намного лучше, чем при масштабировании, однако это не относится ко всем изображениям. Если на изображении @3x есть граница 1px, после уменьшения масштаба до @1x граница не будет видна (0.33px). То же самое относится к любым маленьким объектам изображения. Уменьшение масштаба уничтожает все детали.

В целом - для изображения тоже выглядит идеально, вы хотите избежать как масштабирования, так и масштабирования. Вы всегда можете использовать только изображения @2x или @3x и добавлять другие шкалы только в том случае, если вы видите визуальные проблемы. Использование более высокого разрешения не улучшит масштабирование. Высокие разрешения используются только для предотвращения масштабирования. Уменьшение масштаба с высокой шкалы (например, @100x) до @1x не создаст лучших результатов, чем уменьшение масштаба от @3x.

Ответ 2

Вам нужно 3 вида изображений в Image Assets, потому что с точки зрения масштабирования или пикселов Существует 3 вида Apple Devices (iPhone и iPad), которые

Обычное устройство, которое выражается в 1 pixel = 1 point @1x (более старые устройства iPhone и iPad)

Устройство Retina, которое выражается в 4 pixels(2 x 2) = 1 point @2x (iPhone 4 +)

Retina iPhone6 ​​и iPad, которые соответствуют 9 pixels (3 x 3) = 1 point @3x (iPhone6 ​​+)

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

ИЗМЕНИТЬ

введите описание изображения здесь

Ответ 3

Это потому, что если вы предоставляете одну графику высокого разрешения, это будет пустой тратой пространства на устройстве пользователя. Благодаря утилизации приложений устройство загрузит (из App Store) только те части, которые действительно подходят устройству (поэтому устройство сетчатки не будет загружать графику без сетчатки). Вот почему Apple создала каталоги активов и соблюдала такие правила. Они описывают это в своих сеансах.

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

Ответ 4

Прежде всего, вам нужно знать поведение точек и пикселей. На устройствах без сетчатки отношение точки к пикселям 1 точка = 1 пиксель. На сетчатых устройствах есть два соотношения: 1 точка = 2x2 пикселей в зависимости от размера экрана и 1 точка = 3x3 пикселей, из-за плотности пикселей, которая увеличивается в четыре раза за отсутствием сетчатки. Для этого вам нужны эти 3 типа изображений, которые будут показаны на самом высоком разрешении.

Ответ 5

Дополняя то, что сказал Султан:

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

Ответ 6

Если вы предоставляете только одно большое изображение, вы сталкиваетесь с несколькими проблемами:

  • Уменьшение масштаба приводит к потере качества (даже если оно не велико)
  • Требуется больше вычислительной мощности, чтобы уменьшить масштаб изображения, чем отображать уже предварительно обработанное изображение.
  • Размер вашего бинара увеличивается, и вы не можете извлечь выгоду из прореживания приложения, которое вводится с iOS 9.

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

  • Им нужно уменьшить масштаб. Кроме того, производительность их устройств не так хороша, как производительность новых, поэтому они с большей вероятностью заметят задержки с вашим приложением.
  • У них не так много места для хранения, поэтому вы действительно хотите использовать прореживание приложений, чтобы помочь им.
  • Потеря качества будет самой высокой для них и учитывая, что разрешение их устройств невелико, они заметят это.

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

Ответ 7

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