像素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