simpread 分辨率 PPI DPI 概念定义详解
本文由 简悦 SimpRead 转码, 原文地址 www.cnblogs.com
我们在开发中,涉及到 UI 显示时,经常会遇到的一些概念,比如分辨率,ppi,dpi 等,这些概念,在百度百科中,发现都有对它们的定义,一些博客中,也有对这几个概念的对比,但是看了下,发现解释的也不是很清楚,理解起来还是不太容易,下面讲解下我自己的理解,用尽可能简单通俗的方式,让大家更容易理解。
一、分辨率
分辨率是用来描述图片的像素信息的,比如我们说一张图片的分辨率是 1280*720,那么仅仅是描述这张图片,是由 1280 个像素 * 720 个像素组成。
注意:分辨率仅表示图片像素信息,不能表示任何关于图片清晰,清楚,质量高等的任何描述。
二、PPI(每英寸所拥有的像素)
PPI 是用来描述屏幕的像素显示密度,这个值越高,表示屏幕显示能力越强,我们经常会看到某个手机发布新的产品,会宣传屏幕的 ppi 值,我们举个例子: 针对 5 英寸的 1280*720 的屏幕。
那么这个手机的屏幕,每英寸,最多显示 293 个像素点
注意:PPI 仅仅描述屏幕的显示能力,也不能描述任何图像的清晰度。
三、DPI(每英寸打印的点数)
DPI 表示每英寸打印的点数, 这时算明白了,这个参数才能表示图片清晰度了,只有把图片显示在屏幕上面了,才能谈清晰度。我们举例对比下,常见的几种不同屏幕大小手机的 PPI 值。
当我们把相同分辨率的图片,放在具有相同像素显示的屏幕上显示时,每一个像素,屏幕上对应一个点显示,此时 DPI=PPI, 即我们把分辨率为 mn 的图片,放在最大支持 mn 像素的屏幕上时,DPI=PPI。
但是,实际上,我们所需要显示图片的分辨率,跟屏幕参数匹配的概率还是很小的,我们来分析下,不匹配时的情况:
当我们把 1280720 的图片,放在 800400 的 4 英寸的屏幕与 1920*1080 的 5.5 英寸的屏幕上显示时的结果:
PPI 是屏幕的显示性能,所以跟显示的图片没有关系, 是固定的值,但是 DPI 是有关系的
1280720 => 800480 的 4 英寸屏幕
虽然图片一行有 720 个像素,但是屏幕一行最多只能显示 480 个点,所以 DPI=PPI=233,已经达到屏幕的最大显示能力
1280720 => 19201080 的 5.5 英寸屏幕
虽然屏幕一行有 1080 个点,但是图片一行最多只能显示 720 个像素,所以 DPI=293<PPI, 并未达到屏幕的最大显示能力,屏幕未达到最佳显示。(根据部分朋友的结论,我这里计算有误,正确的 DPI=sqrt(1280^2+720^2)/5.5=267, 图片已经无法更新,请谅解)
四、总结
分辨率只能用来描述图片的像素信息,不能描述图片清晰度
PPI 只能用来描述屏幕的显示密度,也不能描述图片的清晰度
DPI 才能用来描述图片显示的清晰度,表示图片在屏幕上的显示效果。
当图片分辨率与屏幕显示像素相同时, DPI 与 PPI 值相等
当图片分辨率大于屏幕显示像素时, DPI 与 PPI 值相等,图片显示较差
当图片分辨率小于屏幕显示像素时, DPI 值 < PPI 值相等,图片显示正常,屏幕未达到最佳显示效果。