如何获取屏幕DPI/PPI并计算A4纸在屏幕的大小
廢話文學
以前的顯示器分辨率大多支持到1080P,而隨著科技的發展,逐漸有了更高分辨率的顯示器,如2K屏,3K屏,4K屏,甚至又出現了8K屏。
DPI 和 PPI 經常混用。因為很多行業將Dot泛指為所有的圖像基本單元。多數情況下,DPI=PPI。
代碼獲取DPI
function get_dpi() {for (var i = 56; i < 2000; i++) {if (matchMedia("(max-resolution: " + i + "dpi)").matches === true) {return i;}} }因為DPI為每英寸對角線長度內的像素點數,1英寸=25.4mm,所以DPI除以25.4就是1毫米的像素數。
1毫米像素數=DPI/25.4
我們可以計算96DPI下的A4紙頁面像素大小:
寬:210mm×(96/25.4)≈794px
高:297mm×(96/25.4)≈1123px
注意計算得到的結果是向上取整的,因此,如果指定頁面的高度為1123px,打印時會顯示2頁,即多出一個空白頁。
有了毫米與像素的單位換算,以及頁面的寬度、高度像素,就可以非常精確的控制打印頁面樣式了,實際上就是在編寫一個寬794px和高1123px的頁面。
注意:瀏覽器打印頁面可以設置邊距,默認情況下是有邊距的,我們可以使用打印樣式設置這個邊距,從而將打印邊距的控制權也掌握在自己手里。
/*CSS樣式設置打印頁面大小為A4紙,縱向打印,橫向打印為landscape,margin屬性指定頁邊距。*/ @page {size: A4 portrait;margin: 0; }關于DPI & PPI (以下摘自維基百科)
DPI
DPI(英語:Dots Per Inch,每英寸點數)是一個量度單位,用于點陣數字圖像,意思是指每一英寸長度中,取樣或可顯示或輸出點的數目。如:打印機輸出可達300DPI的分辨率,表示打印機可以在每一平方英寸的面積中可以輸出300X300=90000個輸出點。
打印機所設置之分辨率的DPI值越高,印出的圖像會越精細。打印機通常可以調校分辨率。例如撞針打印機,分辨率通常是60至90 DPI。噴墨打印機則可達300~720 DPI。激光打印機則有600~1200 DPI。
PPI(左)和 DPI(右)的比較
一般顯示器為96 DPI,印刷所需位圖的DPI數則視印刷網線數而定。一般150線印刷質量需要350 DPI的位圖。而這里的D(dot)就是像素(pixel)。
因為打印機的混色方式是CMYK,所以色彩(也就是色域)表現不如屏幕的RGB色光表現來的多與鮮艷,以至于打印機的DPI應該大于顯示器的PPI(Pixels Per Inch,像素每英寸),才能與RGB在屏幕有差不多的畫質細膩表現。大部分顯示器每像素每種原色都可以有256個層次,合起來則有2563種顏色,也就是256 x 256 x 256 = 16777216 色,也就是24bit的真彩色。而打印機則僅有16位色左右,因此打印機常常利用中間色或抖動等方法來制造更多顏色的效果,故此其分辨率相當重要。
除了 DPI 外,亦有建議使用DPCM(dots per centimeter)。DPCM和 DPI都納入了CSS3的方案內。
掃描儀的取樣分辨率有時會用DPI來量度,但更好的做法是用每英寸取樣數(SPI)。
鼠標的光電傳感器靈敏度常用DPI來量度,但會受顯示設備和操作系統分辨率設置的影響,更好的做法是用每英寸測量數(CPI)。
PPI
PPI(英語:Pixels Per Inch,每英寸像素),又被稱為像素密度,是一個表示打印圖像或顯示器單位長度上像素數量的指數 (并非單位面積的像素量)。一般用來計量電腦顯示器,電視機和手持電子設備屏幕的精細程度。通常情況下,每英寸像素值越高,屏幕能顯示的圖像也越精細。
電腦與手機屏幕的每英寸像素
電腦與手機屏幕的每英寸像素值取決于尺寸和分辨率,通常指的就是每英寸上的像素點數。
例如一臺4:3的15寸顯示器,分辨率為1024×768(XGA),其橫向和縱向的像素密度均為85每英寸像素。同樣的一臺顯示器,如果分辨率設置的不同,像素點數也不同。分辨率越高,每英寸像素值也越高。
一臺顯示器的的像素密度是由顯示單元之間的點距決定的。一臺顯像管或LCD液晶顯示器的像素密度大約是67至130每英寸像素,而現在筆記本電腦的屏幕能達到200每英寸像素,個別產品甚至高達300每英寸像素。
2008年1月,美國高平公司發布了一款0.44英寸的SVGA顯示器,其像素密度高達2272PPI,每個像素點之間的點距只有11.25微米。這款顯示器未來將應用在眼部成像技術上。
全息攝影對像素密度的要求則更高,因為高密度帶來的是更大的畫面尺寸和更多的成像角度。最新的空間光調制器每個像素點之間的點距只有2.5微米,像素密度更是高達10,160PPI。
屏幕PPI計算公式
電腦及手機
要計算顯示器的每英寸像素值,首先要確定屏幕的尺寸和分辨率。
其中,
以屏幕尺寸為4吋的iPhone 5為例,分辨率為1136x640,像素密度為326PPI。而分辨率為1920x1080的家用21.5寸顯示器,像素密度為103PPI。另外,由于屏幕的尺寸有時并不代表其實際的大小(例如蘋果公司生產的21.5寸iMac電腦實際對角線長度為21.465寸),因此單憑尺寸算得的每英寸像素值會有一定的誤差。
數字相機
數字相機用點色數來描述屏幕的精細程度,每個像素包含了紅綠藍三個點色數。
與電腦和手機上的顯示器不同,數字相機上的屏幕通常不用像素,而是用“點色數”來計算。每一個像素包含了三個點色數,分別是原色:紅色、綠色和藍色。例如。佳能50D相機顯示屏有920,000個點色數,即92萬色。而通過這個數據,可以推算這塊屏幕的像素為307,200個,分辨率為640×480。因為這個區別,相機顯示屏的點色數和像素也常常被人混淆。
掃描儀和相機
每英寸像素值有時也會用在掃描儀和相機上,此時每英寸像素指的是單位面積上的樣本數,其值等于總像素除以CCD傳感器尺寸的商。
一臺專業的數碼單反相機,每英寸像素值只有100-620萬像素/平方厘米;而一臺普通卡片機的每英寸像素值可以高達2,000-7,000萬像素/平方厘米。例如一臺2010萬像素的Sony α單反相機,每英寸像素值約為620萬像素/平方厘米;而一臺2040萬像素的索尼DSC-HX50卡片機的每英寸像素值為7,000萬像素/平方厘米。也就是說,照相機的每英寸像素值越低,單位面積CCD傳感器反映的畫面尺寸就越小,成像效果也越好。
基于每英寸像素值的屏幕分級
根據屏幕每英寸像素值的不同,Android系統的開發者將平板電腦和手機的屏幕分成五類:
| LDPI | 低等像素密度 | 每英寸大約120像素 (36 x 36 px) |
| MDPI | 中等像素密度 | 每英寸大約160像素 (48 x 48 px) |
| HDPI | 高等像素密度 | 每英寸大約240像素 (72 x 72 px) |
| XHDPI | 極高像素密度 | 每英寸大約320像素 (96 x 96 px) |
| XXHDPI | 超高像素密度 | 每英寸大約480像素 (144 x 144 px) |
其中最后一項XHDPI往往指的是具有類似于蘋果Retina顯示屏顯示效果的屏幕。不同等級的屏幕顯示效果相差頗多,下圖為iPhone 3GS和iPhone 4顯示效果的對比:
總結
以上是生活随笔為你收集整理的如何获取屏幕DPI/PPI并计算A4纸在屏幕的大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华山论剑之iOS中(数组,字典,SQLi
- 下一篇: K近似算法