Что такое пиксель и очки в iPhone?

Из ссылки UIImage,

размер

Размеры изображения с учетом ориентации. (Только для чтения)

@property(nonatomic, readonly) CGSize size

обсуждение

В iOS 4.0 и более поздних версиях это значение отражает логический размер изображения и измеряется в точках. В iOS 3.x и более ранних версиях это значение всегда отражает размеры изображения в пикселях.

В чем разница между пикселем и точками?

4 ответа

Решение

Пиксель на iOS - это полное разрешение устройства, что означает, что если у меня есть изображение размером 100x100 пикселей, то телефон будет отображать его 100x100 пикселей на стандартном устройстве, не поддерживающем сетчатку. Однако, поскольку новые iPhone имеют плотность пикселей в четыре раза, это же изображение будет отображаться с разрешением 100x100 пикселей, но будет выглядеть вдвое меньше. Инженеры iOS решили это давно (еще в OS X с Quartz), когда они представили систему очков Core Graphics. Точка - это стандартная длина, эквивалентная 1х1 пикселю на устройстве без сетчатки и 2х2 пикселя на устройстве с сетчаткой. Таким образом, ваше изображение 100x100 будет визуализироваться в два раза больше на устройстве Retina и в основном нормализует то, что видит пользователь.

Он также обеспечивает стандартную систему измерения на устройствах iOS, потому что независимо от того, как меняется плотность пикселей, всегда было 320x480 точек на экране iPhone и 768x1024 точек на экране iPad.*

Но в то же время вы можете игнорировать документацию, учитывая, что устройства Retina были представлены как минимум с iOS 4, и я не знаю, чтобы слишком много людей все еще использовали iOS 3 на более новом iPhone. Но если возникает такой случай, ваш UIImage должен будет отображаться точно в два раза больше его размеров в пикселях на сетчатке iPhone, чтобы компенсировать разницу в плотности пикселей.

* Начиная с iPhone 5, размеры iPhone больше не стандартизированы. Пожалуйста, используйте соответствующие API для получения размеров экрана или использования ограничений макета.

Эти ребята проделали отличную работу, посмотрите здесь - Окончательное руководство по разрешению iPhone.

iOS пиксели, точки, единицы

Мы должны рассматривать их в контексте

  • системы координат
  • абсолютное и относительное позиционирование

Отличия

  • pixels( абсолютный ) -pixel-based coordinate systemsтекущего экрана . Используется в очень специфических случаях. Например CGImage(ширина/высота требуемого изображения в пикселях), CGContext

  • points(виртуальные пиксели, логические пиксели)( абсолютно ) — по умолчанию Point-based coordinate systems. Это своего рода независимый от плотности пиксель — dp в Android.

  • units-unit coordinate systems( родственник ). От0.0к1.0. Например CALayer.anchorPoint, VNImageBasedRequest.regionOfInterest

[Кадр iOS против границ]

Используя данные из http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions я установил формулу sqrt(pointWidth^2+pointHeight^2)/diagonalInches, чтобы выяснить, сколько точек отображается на каждом телефоне. на дюйм

Результаты:

  • iPhone 2G, 3G, 3GS, 4, 4s = 164,825201164068082 точек на дюйм

  • iPhone 5, 5s = 162,9846618550346903

  • iPhone 6 = 162.8061416117083255

  • iPhone 6 Plus = 153,535954278463216

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

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