個人理解像素就是一個個可視的點,什么物理像素,虛擬像素。。。
物理像素就是硬件所能表達的最小可視點。
虛擬像素就是組成區域或圖形份額最小邏輯可視點。也有叫邏輯像素,可以理解為程序所能控制的最小單位。
(這個邏輯點大小可能是物理點的倍數)
好像很少有說這個物理可視點的大小,
估計是因為間距足夠小,本身也小,要繪制出圖片,單個大小沒有多少討論意義,而更多關注數量上的轉換,要達成的效果。
還有下面討論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