iOS中的像素和点是啥?

Posted

技术标签:

【中文标题】iOS中的像素和点是啥?【英文标题】:What are pixels and points in iOS?iOS中的像素和点是什么? 【发布时间】:2012-08-18 14:01:44 【问题描述】:

来自 UIImage 参考:

@property(nonatomic, readonly) CGSize size

图像的尺寸,考虑到方向。

讨论

ios 4.0 及更高版本中,该值反映了图像的逻辑大小,并且以磅为单位。在 iOS 3.x 及更早版本中,此值 始终反映图像的尺寸以像素为单位

iOS中像素和点有什么区别?

【问题讨论】:

查看第一个答案:graphicdesign.stackexchange.com/questions/199/… @owl:很好的第一个答案。谢谢! @doNotCheckMyBlog 实际上,这个答案不适用于 iPhone - 这是一种不同的观点。关于 iOS 中点的定义,请参见下面 CodaFi 的回答。 我尽量不冗余,但这是正确的必要条件:TeaCupApp 的链接指的是点的不同定义(排版,1/72 英寸),而提到的 iOS 文档指的是大约 1/160 英寸的单位(尽管它因设备而异)。正如 LoPoBo 所提到的,CodaFi 的答案在技术上是正确的;请参阅Zorayr's answer 中的图片以获得更易于理解和更详细的说明。不幸的是,Apple 选择滥用广泛使用的术语“point”来表示完全不同的单位。 要记住的关键事实是:“点”在每个 iOS 设备上的大小大致相同。使用它们可以更轻松地设计一致的布局。 【参考方案1】:

iOS 上的像素是设备的全分辨率,这意味着如果我的图像长度为 100x100 像素,那么手机将在标准的非视网膜设备上将其渲染为 100x100 像素。但是,由于较新的 iPhone 具有四倍的像素密度,相同的图像将以 100x100 像素呈现,但看起来只有该尺寸的一半。 iOS 工程师很久以前就解决了这个问题(早在 OS X 中使用 Quartz),当时他们引入了 Core Graphics 的点系统。一个点是标准长度,在非视网膜设备上相当于 1x1 像素,在视网膜设备上相当于 2x2 像素。这样一来,您的 100x100 图像将在视网膜设备上呈现两倍大小,并且基本上可以标准化用户看到的内容。

它还在 iOS 设备上提供了一个标准的测量系统,因为无论像素密度如何变化,iPhone 屏幕上始终是 320x480 点,iPad 屏幕上始终是 768x1024 点。*

但与此同时,您基本上可以忽略文档,因为至少在 iOS 4 中引入了视网膜设备,而且我不知道有多少人仍在更新的 iPhone 上运行 iOS 3。但如果出现这种情况,您的 UIImage 将需要在视网膜 iPhone 上以像素尺寸的两倍进行渲染,以弥补像素密度差异。

*从 iPhone 5 开始,iPhone 的尺寸不再标准化。请使用适当的 API 来检索屏幕的尺寸或使用布局约束。

【讨论】:

不清楚这是如何回答这个问题的……这个答案是从其他地方移来的吗?我在这里没有看到任何点。 问题是,我引用,“像素和点之间有什么区别?”除了最后一段半在 6 年后变得不准确之外,是否有部分问题特别是我未能充分解决? @CodaFi - 这个答案在技术上是正确的,但近乎令人困惑。将通过解释“点”在每个 iOS 设备上的大小大致相同来改进 - 因此,在给定具有不同像素密度(每英寸像素数不同)的设备的情况下,它们可以更容易地设计一致的布局。跨度> 【参考方案2】:

iPhone 分辨率终极指南

这些家伙做得很棒,看看这里 - The Ultimate Guide To iPhone Resolutions。

【讨论】:

但他们没有为 iPad 做这件事。【参考方案3】:

使用来自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

正如您所见,每部手机上的点大小大致相同。使用相同的网页,您可以使用像素值设置相同的公式,并且您会注意到由于新手机上的像素密度更高而导致的较大不规则性。

【讨论】:

OP 询问点和像素是什么,所以我试图准确解释 iPhone 上的点是什么,并将其与像素进行比较。 苹果SDK中点和像素的关系是pixels = logicalPoints * scaleFactor。与OP的问题有关,您的回答根本没有任何意义。 @JacobR 好吧,您没有将结果与像素进行比较,所以我同意holex 的观点,即这并不能回答问题,但这仍然很有用。 我认为这些计算是不正确的。可能是因为您使用的是对角线,但角度因纵横比而异?例如:iPhone 6 - 屏幕宽度为 2.3 英寸(由 specs 像素数 (750) 除以 specs dpi (326) 计算得出); iOS 点宽是 375。所以每英寸点数 = 375/2.3 = 163。请注意,对于以英寸为单位的物理宽度,如果我们从对角线和比例规格(4.7 英寸,16:9 比例)推导出它,我们得到2.304227826 英寸,这将使每英寸点数为 162.744324。这两个值都与您计算的值不同。 点不应该具有固定的物理尺寸(所有设备都相同)吗?

以上是关于iOS中的像素和点是啥?的主要内容,如果未能解决你的问题,请参考以下文章

再谈移动端适配和点5像素的由来

单位px是啥意思

ps中的px是啥意思

像素尺寸是啥意思

像素是啥意思?

px是啥意思