像素1(简介css像素px/pt,Android像素dp,设备像素比,设备像素)


个人理解像素就是一个个可视的点,什么物理像素,虚拟像素。。。

物理像素就是硬件所能表达的最小可视点。
虚拟像素就是组成区域或图形份额最小逻辑可视点。也有叫逻辑像素,可以理解为程序所能控制的最小单位。
(这个逻辑点大小可能是物理点的倍数)

好像很少有说这个物理可视点的大小,
估计是因为间距足够小,本身也小,要绘制出图片,单个大小没有多少讨论意义,而更多关注数量上的转换,要达成的效果。

还有下面讨论css像素的时候,主要关心的是边长而不是数量组成的面积

1,在讨论设备像素比,也就是像素转换的时候:
这时候css像素说的是面积(块里面包含多少个物理像素),一个就是一小块面积。
由多少平方个物理像素组成一个css像素。
不过设备像素比:多少个物理像素组成的面积的边长和css像素的边长的比值。

2,在css中宽高多少像素,其实说的是多少个css像素的边长的累积长度。

当可视点达到一定密度后就看不出来了格子效果,变成平滑过渡,而这个密度就是ppi。

PPI
pixels per inch所表示的是每英寸所拥有的像素(pixel)数目。
手机屏幕的PPI当达到一定数值时,人眼就分辨不出颗粒感了。

当你所拿的东西距离你10-12英寸(约25-30厘米)时, 只要达到300ppi(每英寸300个像素点)以上, 你的视网膜就无法分辨出像素点了。

 

屏幕尺寸说的是斜边,那么密度就是斜边的像素和斜边的长度比值。

 

因为不同厂家和技术,然后把屏幕的大小和密度都搞的不一样,然后事情就来了。

ppi,pixel per inch,每英寸像素数,值越高,屏幕越细腻。
dpi, dot per inch,每英寸多少点,该值越高,则图片越细腻。 ppi与dpi意思差不多,一个在电子一个在机械方面的称呼。 可以理解成:dpi=ppi dpi最初用于衡量打印物上每英寸的点数密度,DPI值越大图片越精细。 当DPI的概念用在计算机屏幕上时,就应称之为ppi。 同理: PPI就是计算机屏幕上每英寸可以显示的像素点的数量。 在电子屏幕显示中ppi和dpi是一样的。

补充:CSS像素一个说法

由于设备的物理像素的大小是不一样的,
所以css认为浏览器应该对css中的像素进行调节,
使得浏览器中 1css像素的大小在不同物理设备上看上去大小总是差不多 ,
目的是为了保证阅读体验一致。
为了达到这一点浏览器可以直接按照设备的物理像素大小进行换算,
而css规范中使用“参考像素"来进行换算。  1参考像素 即为从一臂之遥看解析度为96DPI的设备输出(即1英寸96点)时, 1点(即1/96英寸)的视角。 它并不是1/96英寸长度, 而是从一臂之遥的距离处看解析度为96DPI的设备输出一单位(即1/96英寸)时视线与水平线的夹角。 通常认为常人臂长为28英寸,所以它的视角是: (1/96)in / (28in * 2 * PI / 360deg) = 0.0213度。 由于css像素是一个视角单位,所以在真正实现时,为了方便基本都是根据设备像素换算的。

css像素个人理解:

因为一物理大小为参考那么相对现实世界来说是一个固定大小,
而相对物理像素来说却是虚拟像素
(因为设备像素密度不同表达相同效果需要物理像素数量不同)。

特别注意:
感觉这个css像素不是下面web中以px单位的css像素。
只是一个概念,不知道具体在哪用到。

 

web中的css像素:px;

CSS像素是Web编程的概念,指的是CSS样式代码中使用的逻辑像素。
相对长度单位。
像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)

在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。
px是一个相对单位,相对的是设备像素(device pixel)。

比如iPhone 5使用的是Retina视网膜屏幕,
使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,
所以设备像素数为640 x 1136px,
而CSS逻辑像素数为320 x 568px。

个人理解:

css像素单位px.px是一个相对长度。
一般多少px就是多少分辨率, 这个分辨率原理是通过设备像素比得到的(即多少个物理像素代表一个像素) 可以通过系统的屏幕属性设置分辨率。 系统默认推荐是设备像素等于分辨率。 这就好理解不同的分辨率显示等比例的大小, 新的大小只要分辨率比例乘以当前大小

额外的一个想法:

如果要等比例缩放,那么根据分辨率的比例值正比例变化

如果要显示相同大小,那么根据像素密度比值反比例变化,
根据像素密度变化存在两种可能:
1,相同屏幕大小不同密度,那么显示也是一样的
2,不同屏幕大小不同或者相同密度,
那么本刚好填满屏幕的显示
要么大于屏幕,
要么小于屏幕。
也有例外,那就是屏幕大小比例刚好等于密度比例

css像素关于pt:

pt是用于印刷行业用来表示字体大小的单位,也叫做磅,
用过word设置字体的应该不会陌生,它是一个绝对长度,为1/72英寸。 但是有时候又作为一种像素单位在使用, pt转换为px,需要知道像素密度 因为pt是绝对值, 像素跟像素密度有关系

个人理解像素转换就是:根据密度一定长度里面有多个像素
pt在css单位中属于真正的绝对单位,
1pt = 1/72(inch),1英寸(inch)等于2.54厘米。

下面介绍Android中像素单位dp

注意:下面px不是css单位的px,可直接理解成设备像素

特别注意两个容易容易混淆的dp概念:

DP(device pixels)

设备像素(物理像素),显示屏由一个个物理像素点组成的,
通过控制每个像素点的颜色,使屏幕显示出不同的图像

dip(单位dp):

dip, Density-independent pixel,安卓开发用的概念(和iPhone的scale差不多)
密度独立像素,虚拟单位,又称设备无关像素,单位dp。
1dp的长度相当于一个160dpi的屏幕上一个物理像素的长度。
而160dpi的屏幕则是被android定义为基准的屏幕(mdpi)。

当屏幕像素点密度为160ppi时,1dp=1px。
转换的公式为:
px = dp * (dpi / 160)。
dp就是为了使得开发者设置的长度能够根据不同屏幕(分辨率/尺寸也就是dpi)获得不同的像素(px)数量。
比如:我将一个控件设置长度为1dp,那么在160dpi上该控件长度为1px,
在240dpi的屏幕上该控件的长度为1*240/160=1.5个像素点。

(px:简单理解成设备像素)

 dp区别:

dp / dip(dp)

dp是设备像素(也就是真正的物理像素),好像没有单位,不过可以用设备分辨率来描述,也可以用像素密度。
dip(dp)中dip 是密度独立像素,dp是单位。

设备像素比(dpr)

这用来干什么

是因为当手机屏幕获得更高的分辨率时(更高设备像素),
如果每个设备的CSS像素比(设备和css像素比)仍然是1,那么网页就会呈现得太小,看不见。

一般在系统设置时候屏幕像素为设备像素,而在应用程序中逻辑像素和设备像素再做转换。

获得设备像素比(dpr)后,便可得知设备像素与CSS像素之间的比例。
有如下公式:
DPR = 设备像素/CSS像素 下面具体算法其实一般用不上,稍微了解。 当这个比率为1:1时,使用1个设备像素显示1个CSS像素。 当这个比率为2:1时,使用4个设备像素显示1个CSS像素, 当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。

设备像素比(dpr) 是指示1个css像素占用多少设备像素,
如2代表1个css像素用2x2个设备像素来绘制。

像素搞得这么麻烦一方面是设备像素密度不一样。

另一就是软件系统采用的逻辑像素标准不一样:web(css)有个标准,Android/ios各自又搞个标准。

适配的解决方案为例,
在微信小程序中引入了rpx这个单位,
在Android用的是dp,在ccs中用的rem,
在苹果中用的pt这个单位,苹果是以iPhone6 *

总结:

以上说的只是一些简略。
特别注意一点,因为标准比较多,
很多资料的同一个词语可能说的概念不是一个意思,
错误关联起来看起来就自相矛盾。

不同应用不同系统具体分析。

都是以物理像素,逻辑/虚拟像素的转换关系在折腾。

比如说上面说过的dp。
还有px
有时候px说的是css像素的单位,
有时候说的是像素统称,而这个像素,可能是物理像素(设备像素),可能是逻辑像素。


还有印刷行业和电子行业的单位的混用:ppi/dpi pt/px

px缩写来历:

像素,
为视频显示的基本单位,译自英文“pixel”,
pix是英语单词picture的常用简写,
加上英语单词“元素”element,就得到pixel,
故“像素”表示“画像元素”之意。
px:相对长度单位。像素(Pixel)。
pt:绝对长度单位。点(Point)。
1in = 2.54cm = 25.4 mm = 72pt 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM