十分钟快速理解DPI和PPI,不再傻傻分不清!

https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc
关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究, 

设计师充电站

18-07-1308:58

72DPI的图片拿去打印会糊吗?手机拍出来的照片是多少DPI?PS里显示72PPI为什么另存为JPG就变成96DPI了?

类似的问题层出不穷。本站很多篇文章都讲到了DPI和PPI的问题,但似乎还是不能很好地解释。这里我们以“一次性将这个问题说清楚”为目的,来好好聊聊DPI和PPI。

概念问题

不论是DPI还是PPI,实际都是一种换算的概念,即将图片承载的信息换算为现实中的图片(即人眼能实际看到的图像)。DPI和PPI的区别在于换算的途径不同,DPI面向的是印刷受体,而PPI面向的是荧幕。

1.PPI

PPI是英文Pixels Per Inch的缩写,意为像素每英寸。英寸是常用的长度单位,大约相当于2.54厘米。而像素是专用于荧幕的概念,指的是荧幕可以解析的最小的点。因此,PPI值得是像素在荧幕上的密度,PPI越高图像就越清晰。

举例来说,如果电脑屏幕是2K分辨率,即1920×1080像素,它的图像宽为1920像素。而如果这个电脑屏幕的物理宽度是19.2英寸,电脑屏幕是分辨率就是1920/19.2=100PPI。

2.DPI

DPI是英文Dots Per Inch的缩写,意为点每英寸。应粗你还是那个英寸,但是点的意义有很多。一般来讲,你可以把Dot理解为取样点,即物理设备可以解析的最小单位。在印刷时,它就可以作为印刷网点,而在鼠标等电子设备上,可以理解为最小操作阈值(即设备会把多么远的两个点当作一个点来处理)。

我们仍然拿1920×1080像素的图片来举例子,如果印刷设备的解析能力刚好是100DPI,而且你要印制的纸张尺寸刚好是19.2英寸,那么印刷设备就可以刚好把一个像素作为一个取样点,印刷完成后图片的保真度是百分之百(也就是图片所有的视觉信息都被印刷出来了)。在大多数情况下,这几个数值都不那么整好,因此保真度会产生损失。

作用原理

正如前文所说,DPI和PPI是链接图片信息和视觉的窗口,那么它们是如何产生作用的呢?

1.图片内置的DPI和PPI

图片在计算机(或其他设备)里是一系列代表视觉信息的数据,它的单位是像素。因此,真正能定义图片尺寸的是分辨率,比如前面提到的1920×1080像素。

而很多格式的图片会内置DPI或PPI这个属性,它的唯一作用是作为图形处理软件的参考值。比如,一张图片的PPI是300,那么置入Illustrator的时候就会直接是300PPI下的尺寸。DPI是完全相同的道理。换言之,不论图片的DPI和PPI如何变化,如果分辨率不变,那么图片承载的信息量就不会变化,在实际意义上图片的“大小”都是相同的。

2.设备的DPI和PPI

我们之前提到了印刷设备的解析能力这个问题。其实每个荧幕和每个印刷设备都有自己PPI或DPI参数。我们拿荧幕来说,荧幕的PPI就决定了荧幕的解析能力(注意,并非最大解析能力,而是绝对解析能力)。

如你把某个图片的尺寸在屏幕上放大缩小,它的物理尺寸在改变,因此对信息量来说PPI也在改变。然而,荧幕会按照它自己的PPI显示能力来重新解析这张图片,最终形成你肉眼看到的结果。这个过程,我们可以称为“栅格处理。”

3.栅格处理时使用的DPI和PPI

栅格处理,实际就是将图片在物理尺寸不变的情况下,对DPI或PPI进行调整,图片的信息量会受到影响。图像为何需要进行栅格处理?因为任何设备都有固定的解析能力,比如很多荧幕的解析能力是72PPI,这时一张全屏后(即在屏幕的物理尺寸下)从信息量上来说有300PPI的图片显然超过了荧幕的解析能力,因此对荧幕来说这么大的图片是没必要的,把图片在荧幕的物理尺寸下处理为72PPI就刚好了。

从上面的例子中,你也可以看出,栅格处理无处不在。你在解析能力为72PPI的电脑荧幕上查看一张图片时,不论你如何放大缩小图片,肉眼看到的都是72PPI的图像。即便图片可能被放大到模糊,你看到的仍是72PPI,因为电脑荧幕会将任何图像栅格处理到72PPI。

然而在栅格处理的过程中,处理结果的质量和原图质量有很大的关系。比如,一张在改物理尺寸下,信息量可以达到300PPI的图片,被设备栅格到150PPI,它仍然会是清晰的。而如果原信息量只有72PPI,栅格到150PPI就会看起来模糊。

对于印刷设备来说也是一样的,现代印刷机的解析能力一般是300,因此在图片的物理尺寸和预想印刷完成后的物理尺寸相同时,如果信息量达不到300DPI,那么在印刷时就会被印刷设备栅格处理到300DPI,结果就会是模糊的。但上述两者都不能算绝对,毕竟人眼的识别能力也是有限的,比如220DPI的图像被从300DPI的设备中印刷出来,肉眼也基本看不出模糊。

4.简单理解栅格

栅格处理有非常多种算法,在Photoshop中,在缩放图片的时候你可以看到类似“两次立方”、“两次线性”、“临近”这样的选项,指的就是栅格处理的计算方式。

几乎所有的栅格都是有损处理,除了某些算法中的整数倍放大。这很容易理解,毕竟栅格相当于一种缩放。试想,你将5×5像素的图片栅格成4×4像素会发生什么?由于像素完全无法一一对应,4×4像素的图片中,每个像素都需要根据原图中的9个像素来计算新的色值,因此原图的信息受到了不可逆的破坏。

实际应用

原理说了不少,那么应用的时候我们应该注意什么?

1.在条件允许的情况下,图片分辨率越高越好

我们可能不会有精力去关心图片信息量的DPI是多少,印刷设备的DPI又是多少这种细节的问题。但有一点是可以确定的,那就是图片只要足够大,印刷就会清晰。

2.如果有可能,使用准确的数值

许多软件可以帮助你了解图片实际尺寸下的PPI,比如使用Photoshop,在300PPI下创建A4的文件(尺寸21×29.7厘米,对应分辨率2480×3508像素)并做出图片,那么大多数情况下都可以完美印刷。正如前文所述,大多印刷设备的解析能力是300DPI,因此在该图片的信息量下,1个像素刚好对应1个点,甚至不需要栅格处理。而如果你强行使用400PPI来创建A4尺寸的文件,拿到300DPI的设备上会被栅格,说不定还不如300DPI的质量好(毕竟是有损处理,但这种差别未必能看得出来)。

[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!的更多相关文章

  1. 十分钟快速入门 Python,看完即会,不用收藏!

    本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. ...

  2. Redis 十分钟快速入门

    本教程是一个快速入门教程,所以Redis的命令只是简单介绍了几个常用的,如果有其他需求请求官网查看API 使用. 1. Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的ke ...

  3. 十分钟快速学会Matplotlib基本图形操作

    在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间. 所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这 ...

  4. Redis数据类型简介(十分钟快速学习Redis)

    如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...

  5. 十分钟快速实战Three.js

    前言 本文不会对Three.js几何体.材质.相机.模型.光源等概念详细讲解,会首先分成几个模块给大家快速演示一盒小案例.大家可以根据这几个模块快速了解Three.js的无限魅力.学习 我们会使用Th ...

  6. HDFS+MapReduce+Hive+HBase十分钟快速入门

    1.     前言 本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译.安装和简单的使用. 2.     Hadoop家族 截止2009-8-19日,整个Hadoop家族由以 ...

  7. 带你十分钟快速构建好 SpringBoot + SSM 框架

    目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐.而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了 ...

  8. 十分钟快速创建 Spring Cloud 项目

    一般来说,Intelij IDEA 可以通过 Maven Archetype 来快速生成Maven项目,其实 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方 ...

  9. 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统

    介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...

随机推荐

  1. lua 编译安装

    官网http://www.lua.org/download.html Building Lua is implemented in pure ANSI C and compiles unmodifie ...

  2. C# 生成和解析二维码

    下面是C#和JAVA两个版本的开放源码下载: C#:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library JAVA: ...

  3. MySQL高级知识(十四)——行锁

    前言:前面学习了表锁的相关知识,本篇主要介绍行锁的相关知识.行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高. 0.准备 #1.创建相关测试表tb_ ...

  4. 数据库的连接、会话与SQLite

    通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context).这个上下文是一段位于服务器端的内存:记录了本次连接的所有相关状态和运行数据. 连接(Connecti ...

  5. P2440 木材加工(二分+贪心)

    思路:这里就要看往那边贪心了,因为解决的是最大值最小化,最小值最大化.也就是说当满足大于等于c时,l=mid+1这样的二分得到的就是在所有满足条件函数下的最右端. #include<iostre ...

  6. 微信小程序PHP 微信支付接口调用

    小程序端 /** * 微信支付接口 */ wxPaymoney:function (out_trade_no, true_money){ //out_trade_no 后台统一下单接口需要用 var ...

  7. 路飞学城-Python开发集训-第2章

    学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...

  8. day2-安装python以及基本使用

    安装Python windows 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机]- ...

  9. 【转】Java日志框架:logback详解

    为什么使用logback 记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结 ...

  10. 3.sparkSQL整合Hive

    spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据.从Spark 1.4.0开始,Spark SQL只需简单的配置 ...