[转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!
十分钟快速理解DPI和PPI,不再傻傻分不清!
https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for=pc
关于UX测试相关的: 之前一直搞的不是很清楚 这个百家号的解释挺好的 简单转帖一下 以后仔细研究,
设计师充电站
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,不再傻傻分不清!的更多相关文章
- 十分钟快速入门 Python,看完即会,不用收藏!
本文以 Eric Matthes 的<Python编程:从入门到实践>为基础,以有一定其他语言经验的程序员视角,对书中内容提炼总结,化繁为简,将这本书的精髓融合成一篇10分钟能读完的文章. ...
- Redis 十分钟快速入门
本教程是一个快速入门教程,所以Redis的命令只是简单介绍了几个常用的,如果有其他需求请求官网查看API 使用. 1. Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的ke ...
- 十分钟快速学会Matplotlib基本图形操作
在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间. 所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这 ...
- Redis数据类型简介(十分钟快速学习Redis)
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- 十分钟快速实战Three.js
前言 本文不会对Three.js几何体.材质.相机.模型.光源等概念详细讲解,会首先分成几个模块给大家快速演示一盒小案例.大家可以根据这几个模块快速了解Three.js的无限魅力.学习 我们会使用Th ...
- HDFS+MapReduce+Hive+HBase十分钟快速入门
1. 前言 本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译.安装和简单的使用. 2. Hadoop家族 截止2009-8-19日,整个Hadoop家族由以 ...
- 带你十分钟快速构建好 SpringBoot + SSM 框架
目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐.而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了 ...
- 十分钟快速创建 Spring Cloud 项目
一般来说,Intelij IDEA 可以通过 Maven Archetype 来快速生成Maven项目,其实 IDEA 集成了 Spring 官方提供的 Spring Initializr,可以非常方 ...
- 巨杉Tech | 十分钟快速搭建 Wordpress 博客系统
介绍 很多互联网应用程序开发人员第一个接触到的网站项目就是博客系统.而全球使用最广的Wordpress常常被用户用来快速搭建个人博客网站.默认情况下,Wordpress一般在后台使用MySQL关系型数 ...
随机推荐
- inline-block,一个奇怪的问题:中间div掉下来
先上代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...
- Linux 系统故障排查和修复技巧
Linux 系统故障排查和修复技巧 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应用单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解 ...
- 虚拟化技术QEMU-KVM入门
一.QEMU.KVM.QEMU-KVM QEMU提供一系列的硬件模拟设备(CPU,网卡,磁盘等),客户机指令都需要QEMU翻译,因而性能较差.KVM是linux内核提供的虚拟化,可以用来进行vCPU的 ...
- WPF ListView点击删除某一行并获取绑定数据
最近在开发WPF程序时遇到一个问题,在gridview中希望实现在每一行最后添加一个删除的按钮,但是发现点击每行的button时只会触发button的点击事件,并没有选中这一行,此时调用list.Se ...
- [SHOI2015]脑洞治疗仪
嘟嘟嘟 这题其实就是一个线段树维护最大连续和的水题. 别的操作不说,操作1只要二分找区间前\(k\)个0即可. 需要注意的是,因为操作1两区间可能有交,因此要先清空再二分查询-- 复杂度\(O(n l ...
- 【ES6】函数
函数默认值问题 在ES6之前,不能直接为函数指定默认值,但是ES6允许为函数的参数设置默认值 之前实现方式 function log(x, y) { y = y || 'World'; console ...
- 004_后端js编写工具
一.框架同事用的后端调试用的工具 google=>"webpack dev server" https://webpack.github.io/docs/webpack-de ...
- 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户
1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...
- 初学Python——文件操作第二篇
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
- Pycharm远程调试服务器代码(使用Pipenv管理虚拟环境)
准备工作 1.随便准备一个项目工程,在本地用Pipenv创建一个虚拟环境并生成Pipfile和pipfile.lock文件,如下: 2.准备一台服务器,我这里使用阿里云的ECS SSH连接上 $ ss ...