关于PPI、DPI、Pixel、DIP等名词的解释

Pixel是衡量图片尺寸的常用单位,在软件开发中,要呈现多大的图片,经常用Pixel来做衡量单位。在Retina时代以前,这样的做法基本上都适用。然而在今天,面对不同像素密度的显示器,这样的做法不是很妥当了。

像素 Pixel/PX

像素有2个概念,一个是抽象层面的,一个是设备层面的。抽象层面的像素依赖于软件层,也就是系统的分辨率、游戏的分辨率。那么在软件开发中使用的像素单位,一般是指软件层,可以有小数点。

像素密度 PPI

像素密度用来衡量一个显示设备的精细程度。同样是1024*768的分辨率,用在14寸的电脑上,像素密度就要低于在4寸的手机上。一般来说,使用PPI来衡量像素密度。PPI(Pixel Per Inch),即每英寸的像素个数。算法为:

像素密度(PPI) = 像素总数 / 屏幕尺寸(Inch)

点像素 DPI

在打印设备上,衡量打印对象的单位是点,而非像素。点和像素不一定是一一对等,可以调整。在这种情况下,产生了另一个衡量单位,点密度(DPI),也就是每英寸多少点(Dot Per Inch)。

设备无关像素 DIP/DP

为了克服不同像素密度下不同的像素单位的缺点,于是就有了DIP(Device Independent Pixel)方案。DIP与PIXEL之间的关系如下:

DIP = PIXEL * 160/DPI
PIXEL = DIP * DPI/160

在这里,DPI实际上为PPI。

设定一个图片的大小为1DIP * 1DIP,那么在像素密度160的设备上,最终的像素为1 * 1。如果在像素密度200的设备上,像素为1.25 * 1.25。

苹果设备

苹果目前使用不同的像素去对应不同的像素密度设备,一般用@1x、@2x、@3x来表示图片用在哪个像素密度的设备上。

安卓设别

安卓设备目前使用以下几个词来表示: ldpi(120)、mdpi(160)、hdpi(240)、xhdpi(320)、xxhdpi(480)来表示该文件夹下的图片使用在哪个像素密度的设备上。