DPI和PPI

前言

不論是DPI還是PPI,實(shí)際都是一種換算的概念,即將圖片承載的信息換算為現(xiàn)實(shí)中的圖片(即人眼能實(shí)際看到的圖像)。DPI和PPI的區(qū)別在于換算的途徑不同,DPI面向的是印刷受體,而PPI面向的是熒幕。

1.PPI

PPI是英文Pixels Per Inch的縮寫,意為像素每英寸。英寸是常用的長度單位,大約相當(dāng)于2.54厘米。而像素是專用于熒幕的概念,指的是熒幕可以解析的最小的點(diǎn)。因此,PPI值得是像素在熒幕上的密度,PPI越高圖像就越清晰

image.png

舉例來說,如果電腦屏幕是2K分辨率,即1920×1080像素,它的圖像寬為1920像素。而如果這個(gè)電腦屏幕的物理寬度是19.2英寸,電腦屏幕是分辨率就是1920/19.2=100PPI。

2.DPI

DPI是英文Dots Per Inch的縮寫,意為點(diǎn)每英寸。應(yīng)粗你還是那個(gè)英寸,但是點(diǎn)的意義有很多。一般來講,你可以把Dot理解為取樣點(diǎn),即物理設(shè)備可以解析的最小單位。在印刷時(shí),它就可以作為印刷網(wǎng)點(diǎn),而在鼠標(biāo)等電子設(shè)備上,可以理解為最小操作閾值(即設(shè)備會(huì)把多么遠(yuǎn)的兩個(gè)點(diǎn)當(dāng)作一個(gè)點(diǎn)來處理)。


image.png

我們?nèi)匀荒?920×1080像素的圖片來舉例子,如果印刷設(shè)備的解析能力剛好是100DPI,而且你要印制的紙張尺寸剛好是19.2英寸,那么印刷設(shè)備就可以剛好把一個(gè)像素作為一個(gè)取樣點(diǎn),印刷完成后圖片的保真度是百分之百(也就是圖片所有的視覺信息都被印刷出來了)。在大多數(shù)情況下,這幾個(gè)數(shù)值都不那么整好,因此保真度會(huì)產(chǎn)生損失。

image.png

1.在條件允許的情況下,圖片分辨率越高越好 我們可能不會(huì)有精力去關(guān)心圖片信息量的DPI是多少,印刷設(shè)備的DPI又是多少這種細(xì)節(jié)的問題。但有一點(diǎn)是可以確定的,那就是圖片只要足夠大,印刷就會(huì)清晰。

2.如果有可能,使用準(zhǔn)確的數(shù)值 許多軟件可以幫助你了解圖片實(shí)際尺寸下的PPI,比如使用Photoshop,在300PPI下創(chuàng)建A4的文件(尺寸21×29.7厘米,對應(yīng)分辨率2480×3508像素)并做出圖片,那么大多數(shù)情況下都可以完美印刷。

正如前文所述,大多印刷設(shè)備的解析能力是300DPI,因此在該圖片的信息量下,1個(gè)像素剛好對應(yīng)1個(gè)點(diǎn),甚至不需要柵格處理。而如果你強(qiáng)行使用400PPI來創(chuàng)建A4尺寸的文件,拿到300DPI的設(shè)備上會(huì)被柵格,說不定還不如300DPI的質(zhì)量好(畢竟是有損處理,但這種差別未必能看得出來)。

下圖是蘋果官方對iPhone 機(jī)型的介紹:

image

拿iPhone7 Plus來說:

屏幕尺寸:5.5英寸

手機(jī)分辨率(像素):1920 (高)x 1080(寬)

PPI:401


概念說明

屏幕尺寸:表示手機(jī)屏幕對角線的長度,單位是英寸。1英寸(inch)=2.54厘米(cm)

手機(jī)分辨率:分辨率可以從顯示分辨率與圖像分辨率兩個(gè)方向來分類。

顯示分辨率(屏幕分辨率):屏幕圖像的精密度,是指顯示器所能顯示的像素有多少。由于屏幕上的點(diǎn)、線和面都是由像素組成的,顯示器可顯示的像素越多,畫面就越精細(xì),同樣的屏幕區(qū)域內(nèi)能顯示的信息也越多。

圖像分辨率:單位英寸中所包含的像素點(diǎn)數(shù),其定義更趨近于分辨率本身的定義。

分辨率的單位:(dpi點(diǎn)每英寸)、lpi(線每英寸)和ppi(像素每英寸)。但只有l(wèi)pi是描述光學(xué)分辨率的尺度的。雖然dpi和ppi也屬于分辨率范疇內(nèi)的單位,但是他們的含義與lpi不同。而且lpi與dpi無法換算,只能憑經(jīng)驗(yàn)估算。ppi和dpi經(jīng)常都會(huì)出現(xiàn)混用現(xiàn)象。但是他們所用的領(lǐng)域也存在區(qū)別。從技術(shù)角度說,“像素”只存在于電腦顯示領(lǐng)域,而“點(diǎn)”只出現(xiàn)于打印或印刷領(lǐng)域。

ppi:Pixels Per Inch,屏幕像素密度,每英寸屏幕所擁有的像素?cái)?shù),在電腦顯示領(lǐng)域使用。

dpi:Dots Per Inch,每英寸長度上的點(diǎn)數(shù),在打印領(lǐng)域使用。


屏幕像素密度,分辨率,屏幕尺寸的關(guān)系

image

所以美工使用PS作圖的大小為手機(jī)分辨率的大小。

如需要設(shè)計(jì)適配iPhone7的手機(jī),我們使用1334 x 750px大小

但有一點(diǎn)是特殊的,就是iPhone6(s) plus、iPhone7 plus,我們需要使用2208 x 1242px大小,

原因:

ppi為326的手機(jī),使用的為@2x的素材,對于ppi是401的手機(jī),理論上蘋果應(yīng)該用401/326 * @2x=@2.46x的素材。但是這個(gè)奇葩的比例對開發(fā)者而言很難切圖。所以蘋果為方便開發(fā)者用的是@3x的素材,然后再縮放到@2.46x上,實(shí)際上是縮放到2.46/3=83%。實(shí)際上蘋果選取了一個(gè)接近比例的87%。

這樣算下來,物理分辨率和虛擬分比率的比例是87%,也就是1920/0.87=2208,1080/0.87=1242.

好處就是開發(fā)者更方便,比如準(zhǔn)備素材時(shí),字號(hào)可以直接調(diào)成3x的。


圖片大小和分辨率

image
image

概述

前段時(shí)間看了小米8的發(fā)布會(huì),其中屏幕參數(shù)是如下介紹的:

小米8采用6.21英寸的三星AMOLED屏幕,分辨率為2248x1080,402 PPI ,縱橫比是18.7:9,屏占比為86.68%,最高亮度600nit。

當(dāng)時(shí)我就在想這都是怎么算出來的,雖然我知道PPI是指屏幕每一英寸上包含的像素點(diǎn),但是稍微往深一想我發(fā)現(xiàn)我對這些參數(shù)真的很迷茫,好奇心驅(qū)使我做了些調(diào)查。

要解決的疑問

  1. 屏幕的像素與圖片的像素是一回事嗎?
  2. 屏幕的分辨率和圖片的分辨率是同一回事嗎,分別代表什么,二者什么關(guān)系?
  3. PPIDPI 是一回事嗎,什么關(guān)系?
  4. ptpx什么關(guān)系?
  5. Android中的dppx什么關(guān)系?
  6. Android中的dpsp什么關(guān)系?
  7. Android中dip是什么,與px什么關(guān)系?

概念篇

像素

像素,英文為Pixel,是我們?nèi)粘W钍煜げ贿^的了,但是深入進(jìn)去會(huì)發(fā)現(xiàn)其蘊(yùn)含的知識(shí)量是巨大的,此篇對于像素話題也只是淺嘗輒止,拋磚引玉。

討論像素需要分不同的場景: 1. 數(shù)字圖像 我們程序員日常工作中接觸并討論的像素大多是指這個(gè)范疇。

像素是組成光柵圖片(Raster graphics)的最小單位。

光柵圖片(Bitmap)是我們?nèi)粘=佑|最多的,例如 jpg,jpeg,png,gif,bmp等等,另一種比較常見的就是矢量圖了。 光柵圖片是由一個(gè)一個(gè)像素組成的,那么像素包含哪些信息?有物理尺寸嗎?

每個(gè)像素由顏色信息組成,有的還包含一個(gè)透明度信息。因?yàn)榭梢酝ㄟ^三原色Red,Blue,Green來混合出很多種顏色,所以一個(gè)像素就可以使用存儲(chǔ)這三種顏色的一個(gè)數(shù)據(jù)結(jié)構(gòu)表示。一個(gè)像素占用內(nèi)存的大小,與其使用多少位來表示這些顏色有關(guān),例如最簡單的像素只有一個(gè)bit,那么它只能表示兩個(gè)狀態(tài),0或者1,對應(yīng)到圖像上也就是黑白。當(dāng)一個(gè)像素達(dá)到24bit的時(shí)候,RGB每個(gè)通道占8位,可以組合出來的顏色已經(jīng)有1677萬色(256256256=16,777,216)種了,而人類眼睛可以分辨的顏色也只有大概1000多萬種,此時(shí)就是真彩色了。當(dāng)然還有32位真彩色,感興趣的可以去研究。

image

圖片來自維基百科

那么通過以上的介紹,我們可以得出結(jié)論,此處的像素沒有物理尺寸,僅僅是一些數(shù)據(jù),只有將其顯示在物理設(shè)備上才會(huì)存在物理尺寸。

  1. 硬件顯示設(shè)備 對于硬件顯示設(shè)備,我們這邊特指手機(jī)屏幕和顯示器吧,像素是其顯示的基本單位。顯示屏目前廣泛采用點(diǎn)陣顯示,將任何的顯示設(shè)備放大一定程度,可以看到基本都是由RGB三個(gè)小燈管組成一個(gè)像素(這個(gè)我沒有辦法去驗(yàn)證,但是以前玩google 那個(gè)紙板VR眼鏡,近距離放大看手機(jī)屏幕時(shí),可以看到屏幕上的小網(wǎng),每個(gè)小網(wǎng)格就是一個(gè)屏幕的像素)。

可以通過下圖感受一下

image

圖片來源

分辨率

討論分辨率仍然需要分討論場景 1. 數(shù)字圖像 此時(shí)分辨率是用來描述圖片的像素信息的,比如我們說一張圖片的分辨率是1280720,那么僅僅是說明這張圖片是由1280個(gè)像素 720個(gè)像素組成的。如下圖所示,至于這張圖片的尺寸有多大,清晰還是模糊,這取決于它自身的存儲(chǔ)格式以及用來顯示它的設(shè)備。

image

2. 硬件顯示設(shè)備 是指這塊屏幕所包含的像素(這個(gè)像素是物理上的,前面我們已經(jīng)討論過了)。例如小米8的屏幕分辨率為2248x1080,說明這塊屏幕包含了這么多物理像素。

那么圖片的分辨率與屏幕的分別率是什么關(guān)系呢?這需要清楚了PPI后才可以回答這個(gè)問題。

PPI與DPI

DPI是印刷業(yè)使用的單位,其表示的是打印紙上每一英寸包含的墨點(diǎn)數(shù)量,而PPI是電子屏幕上每一英寸上包含的可尋址物理物理顯示單元。其中英寸是西方慣用長度單位,等于2.54厘米。這兩個(gè)概念之所以如此容易混淆,就是因?yàn)橐恍┸浖峁┥套龅哪?,例如Microsoft,Adobe,Apple 等等,他們經(jīng)常將這兩個(gè)概念互換使用。

PPI

PPI: Pixels Per Inch, 每一英寸上包含的像素個(gè)數(shù)。 這個(gè)值越高,屏幕的顯示能力越強(qiáng),例如小米8 PPI的計(jì)算方式如下圖所示

image

\frac{\sqrt{1080^2+2248^2}}{6.21}=401.6 可見小米8的PPI是401.6,而其官方宣稱為402,估計(jì)是四舍五入了,不過不知道半個(gè)像素怎么處理,知道的可以告訴我一下。

DPI

DPI: Dots Per Inch, 每一英寸上包含的點(diǎn)個(gè)數(shù)。 與PPI計(jì)算方式一樣,只是應(yīng)用的領(lǐng)域不同,這個(gè)用在印刷業(yè)的。

至此我們可以回答圖片的分辨率與屏幕的分辨率的關(guān)系了,以小米8為例,按照圖片比例全屏顯示某一張圖片: 第一:當(dāng)將一張10802248像素的圖片顯示在Mi8上時(shí),屏幕上的每一個(gè)物理像素對應(yīng)一個(gè)圖片像素,可以完美顯示。 第二:當(dāng)將一張20002248像素的圖片顯示在Mi8上時(shí),Mi8的屏幕在寬度上是無法顯示的,所以顯卡會(huì)將圖片光柵化,通過一定的算法將2000個(gè)像素減少到1080個(gè)像素,由于是從多到少的處理,所以圖片是清晰的。 第三:當(dāng)將一張720*1280像素的圖片顯示在Mi8上時(shí),顯卡會(huì)將圖片光柵化,將圖片以其中一邊為標(biāo)準(zhǔn)拉伸,圖片會(huì)變模糊。

Pt vs Px

Pt :漢語翻譯為,是一個(gè)物理尺寸,長度為1/72 英寸,在概念上Pt與Px毛關(guān)系也沒有,但是在photoshop中就有關(guān)系了。photoshop 中的pt卻是一個(gè)相對單位(這幫二貨各種混用)

換算公式:1pt= (DPI / 72) px

Android中的dp與px關(guān)系

dp: Density-independent Pixels, 這個(gè)是Android基于物理設(shè)備的ppi抽象出來的一個(gè)單位。它是以160dpi的屏幕為基準(zhǔn)定義的,在160dpi的屏幕的屏幕上1dp=1px,那么我們就可以得出其

換算公式: 1dp=(屏幕ppi/ 160)px

目前Android系統(tǒng)的屏幕分類如下表 |密度分類| 屏幕密度 | |--|--| |ldpi |120dpi | |mdpi |160dpi | |hdpi |240dpi | |xhdpi |320dpi | |xxhdpi |480dpi | |xxxhdpi |640dpi |

Android中的dp與sp關(guān)系

sp: Scale-independent Pixels,其與dp基本一樣,也是像素?zé)o關(guān)的,但是是用在描述字體的大小上。其尺寸會(huì)同時(shí)相應(yīng)屏幕密度以及用戶對字體的偏好設(shè)置。 例如:在手機(jī)的字體設(shè)置為默認(rèn)大小時(shí),使用dpsp描述字體的大小是一樣的,如下圖

image

但是當(dāng)我們改變了手機(jī)的字體默認(rèn)設(shè)置的字號(hào)后,dp描述的字體大小沒有變化,但是sp描述的字體大小卻相應(yīng)的發(fā)生了變化,如下圖。

image

除此之外dpsp再無差異,一般建議字體使用sp作為單位。

Android中dip是什么,與px的關(guān)系

dip 就是dp互為別名,沒有任何區(qū)別,其與px關(guān)系見上文。

總結(jié)

以上就是關(guān)于顯示接觸GUI開發(fā)的程序員應(yīng)該了解的,本來以為很簡單,但是調(diào)查后發(fā)現(xiàn)再往深研究我將會(huì)陷入泥潭無法自拔。同時(shí)我也感受到,人類社會(huì)發(fā)展到目前的水平,任何一個(gè)門類的知識(shí)都足以讓一個(gè)人投入終身的時(shí)間去研究,那我們程序員除了賺錢養(yǎng)家是不是應(yīng)該找個(gè)自己感興趣方向忠貞不渝的投入一生業(yè)余精力去嘗試研究一番呢?在此我覺得我很挫敗,突然發(fā)現(xiàn)自己這么大年紀(jì)了竟然沒有愛好,如果愛好美女這個(gè)不算的話。。。!

原圖

我們的原圖是一份長寬都是1800像素的圖片。

這張圖片長寬都是1800像素 ,對它自己而言,DPI和PPI沒有意義。
它的分辨率參數(shù),僅僅是1800像素而已。

打印這張圖

假設(shè)我們的所有印刷機(jī)、打印機(jī)、噴繪機(jī),在原尺寸下都將1像素映射為1個(gè)點(diǎn)(即1Px/Dots),可以進(jìn)行下面這些計(jì)算。

如果我們使用300DPI的印刷機(jī),原尺寸打印這張圖,那么它的長寬為:
1800 Px / (1Px/Dots) / 300 DPI = 6 in 即長寬都是6英寸(15.24厘米)。

如果我們使用220DPI的打印機(jī), 原尺寸打印這張圖,那么它的長寬為:
1800 Px / (1Px/Dots) / 220 DPI ≈ 8.19 in 即長寬都是8.19英寸(20.8厘米)。

如果我們使用72DPI的噴繪機(jī), 原尺寸打印這張圖,那么它的長寬為:
1800 Px / (1Px/Dots) / 72 DPI = 25 in 即長寬都是25英寸(63.5厘米)。

顯示這張圖

使用81PPI的一般顯示器,原尺寸顯示這張圖, 那么它的長寬為:
1800 Px / 81 PPI ≈ 22.2 in 即長寬都是22.2英寸(56.4厘米)。

顯示器的PPI 我們假設(shè)顯示器是方形像素,那么顯示器的PPI是由它的分辨率和長寬共同決定的。

即顯示器的橫向PPI=顯示器的橫向分辨率(Px)/顯示器的寬度(in)。

我們常說的顯示器的英寸數(shù),是其對角線的長度。 對于16:9的顯示器來說,PPI可以這樣計(jì)算:
PPI = sqrt { (像素寬 * 像素高) / [16 * 9 * 英寸數(shù)^2 / (16^2 + 9^2)] }

舉例來說,1920*1080像素的24寸顯示器,PPI就是:
PPI = sqrt { (1920 * 1080) / [16 * 9 * 24^2 / (16^2 + 9^2)] } ≈ 91.7878

下面的表格計(jì)算了常見顯示器尺寸的PPI,你可以用這個(gè)公式檢驗(yàn):

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容