简单易懂ppi和dpi的本质和由来
? ? ? ?今天學習安卓的時候又遇到這個問題,第一次認真搜索了一下,看了很多博文說的不太全面或是沒有講到本質,我只是簡單說一下對于電子屏幕來說ppi和dpi的區別。
一、PPI和DPI的概念?
? ? ? ?先說普通用戶接觸較多的ppi,英文全稱pixels per inch,又叫像素密度,意思是每英寸上的像素數。如圖是我畫的垃圾圖,湊活看,一塊1280*720分辨率的5英寸屏幕,意思是橫向720個像素,縱向1280個像素,對角線長度5.0英寸,可以計算ppi = sqrt(1280^2+720^2)/5.0 = 293.72。理論上人眼所能分辨的ppi為300,300以上可稱視網膜屏,也就是蘋果所謂的Retina屏。
? ? ? ?然后是開發中用到的dpi,英文全稱dots per inch,又叫點密度。dpi是比ppi范圍廣的多的詞,因為只有數碼設備才有像素這個概念,其他的比如打印機就只能用dpi衡量。除了點和像素的區別,其他計算方式和ppi是一樣一樣的。
二、PPI和DPI的區別
? ? ? ?理論上對于屏幕而言,點就是像素,像素就是點,ppi和dpi應該沒有區別才對,但是對于圖里的屏幕,已經計算過ppi=293,跑分軟件卻顯示dpi=320。為什么dpi和ppi會不同?其實這是人為規定的結果。
? ? ? ?在開發中使用的dot也就是dpi中的d,如果有一個640d*360d的東西,顯示在上述1280*720的屏幕上,嚴格點對點顯示,將正好占據1/4個屏幕,但是在640*360的屏幕上就是占滿了整塊屏幕。生活中的屏幕分辨率五花八門,點對點顯示肯定是行不通的,所以需要按比例顯示。先規定基準dpi為160(安卓早期谷歌規定的基準值),還是嚴格按照定義,1280*720的5寸屏幕ppi=dpi=293,假設有一條80d的線段,那么在這塊屏幕上實際點數應該是293/160*80=146.5???出現了半個像素的情況!!!這讓屏幕左右為男,顯示也不對,不顯示也不對。為了避免這種問題,谷歌又規定了幾種標準dpi分別為240、320等等,和160dpi的比例分別為1.5、2,293與320最為相近(沒有研究具體什么是最為相近),所以規定此屏幕dpi為320。這樣只要確保開發中使用的大小即點數必須為偶數,這樣再乘以比例就不會出現半個點的情況。
三、總結
? ? ?總結一下,對于手機屏幕,點和像素是一個意思,理論上ppi和dpi應該是一個東西,但是由于ppi五花八門,在按比例放大的時候會出現半個像素的情況,所以人為規定了幾個特殊的dpi取值,比如160、240、320等,完美解決了問題,同時導致手機屏幕的ppi和dpi不再相等。
總結
以上是生活随笔為你收集整理的简单易懂ppi和dpi的本质和由来的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Born近似和Rytov近似
- 下一篇: 计算机为什么检测不到u盘启动项,BIOS