今天我们来扒一扒这三个长得很像很像的分辨率三兄弟:PPI、DPI、LPI。

不急,沏一杯茶,咱慢慢侃~

这三个后面的PI都是一个意思:per inch(每英寸)。

所以这三个概念都是表明图像精细度的,每英寸的单位长度上,分布有多少个基本图像单元。

为了方便表达,咱们暂时把所有的基本图像单元通通都叫做“图像原子”。

当我们要用显示器、印刷品复现世间万物,其实是在用一个个的基本图像单元排列在一起来实现。

由于显示手段的不同,不同设备的“图像原子”是不一样的:

显示器:像素Pixel,单位PPI,常见标准72PPI;

印刷品:网点LPI,单位LPI,常用标准150LPI;

打印机:墨点Dot,单位DPI,常见数值>1000DPI。

下面我们重点聊一聊关于打印机DPI的种种~

不管是喷墨打印机,还是激光打印机,甚至喷绘机,都用墨点做“图像原子”。墨点必须足够小,图像看起来才精细。人眼分辨的极限,距离30cm时, 1mm的长度里包含300~400个点,人眼就无法感觉到颗粒感了。因此,数码冲印机的DPI在200~300左右。同理,打印机的分辨率至少要达到200~300DPI。

不过,市面的打印机常见的DPI参数动不动就上千,这是为什么?这么高的DPI意义何在?

先说CMYK印刷机,它有4个颜色通道,每个通道可以有101阶的强度变化,即使除开K通道不算,也能实现百万种颜色。

打印机来说,它能控制的是墨点的密度。墨点密,颜色就深,墨点稀疏,颜色就浅。这样一来,墨点密度有多少级变化,就能形成多少种色阶。假设我们要把一幅300PPI的图像用1200DPI的打印机打出来。1个像素就由4×4个墨点矩阵(只讨论单色的情况)来组成。参考下图:

这意味着,在这个像素的位置上,从颜色的有到无,从浅到深,只有16阶可调。也就是说,在这个打印模式下,单颜色通道只能实现16色……16……6……哦no!

对比一下,印刷机,单颜色通道理论上可以实现101阶调节;而显示器,单颜色通道有256阶可调。所以打印机这个的16阶实在是有点磕碜了……

因此,目前打印机提高DPI的目的,已经不是提升精细度(精细度已经完全够用了),而是要提升颜色的数量,从而提升对颜色层次感的表现力。一台300DPI的打印机和一台1500DPI的打印机的区别,类比于相机,并不是200万像素和800万像素的区别,而是256色和16M色的区别。

更多的颜色,意味着更加丰富的色彩层次和更平滑的中间色调过渡。这个其实就是“色阶”的概念,也有把这个称为阶调、色调的。不过,目前“色阶”一般只针对灰阶讨论,不讨论有彩色的情况。

理论上,如果打印机要达到和印刷机同样的150LPI效果,就需要达到1500DPI(一个颜色通道从0到100有101阶可调,因此一个印刷的网点需要由10×10=100个墨点组成,则打印机的DPI应为印刷机的LPI的10倍)。

So,打印机的厂家在这个技术指标上不停的升级加码,是有道理的。更高的DPI,可以在支持同样PPI图像的条件下打出更多的颜色,或者在打出同样多颜色的条件下支持更大的PPI图像,或者两者同时提升。

如果打印机DPI的指标不够会怎么样?由于DPI不够,能打出来的颜色就会比较少。造成的结果,就是图像里的细节会消失。比如拍一张有树荫的照片,树荫本来是深绿色的,但里面还有很多种不同的深绿,因此能看到一些树叶、树干、草地的纹路。可一但打印出来就只能看到一片深绿色的阴影,因为打印机把颜色相近的绿色都打成一种绿色了。

也就是说,受影响较大的,一类是线条多、而颜色又接近的情况,比如头发丝、草地之类。另一类,是颜色过渡非常细腻丰富的情况,比如人的肤色。(这也是各大打印机厂商采用人像做样张输出的原因!)

但是!DPI越高,打印效果就越好吗?不一定,还有一个重要的因素,打印介质!比较理想的比如光滑的相纸,不能不吃墨也不能太吃墨、不能让小墨点在纸上浸润开变成大墨点、干燥速度还要快……

因此不同的打印介质能承受的最高DPI又是不一样的,软件会自动根据介质情况选择合适的DPI,一般都不会按照最高分辨率打印。

同时,由于介质方面的限制,打印机通过提高DPI来提高色阶数量的能力其实是有限的。所以打印机厂家还想了其他很多办法来提高打印照片的颜色表现力,比如增加色彩数量(从4色打印升级到6色打印,这个效果很明显)、改变喷出墨滴的大小(类似于印刷改变网点大小)、降低墨盒的基本色彩浓度同时颜色浓的地方反复喷墨等等。

还有一个问题,有的喷墨打印机水平方向和竖直方向的DPI为啥不一样呢?

水平方向的DPI,主要由墨滴的大小决定,也就是完全取决于喷头的原理和技术水平。

而竖直方向的DPI,就还受另外一个因素影响:走纸的机械结构!大家如果干过跟机械加工有关的工作,就会知道,一旦机械加工尺寸太小,成本就会一路飙升。现在机械加工水平,控制公差的能力也就是0.02mm左右。而一个竖直方向分辨率为1200DPI的打印机,走纸和喷墨加起来的精度就已经到了0.002mm!打印机厂家表示,心好累……

所以竖直方向的DPI比水平方向的DPI低很多是正常的,而且目前看来也无解。这也是为什么高精度打印会打得很慢。稍微晃一下,那个机械误差就蹭蹭的上去了。大家写过毛笔字吗?写字的时候手抖会怎么样?嗯,就是那种感觉~

好吧,扯远了,今天就聊到这里~ 欲知后事如何,且听下回分解~

作者丨祝诗扬

来源丨“颜色的前世今生”微信公众号

-end-

推荐阅读

·结网、赋能,快印店的经营新思路!

·这家传统图文快印店进军大幅面打印市场,还做得有声有色!

·又来?打印机跟“文创”有关吗?

·大幅面打印市场“遇冷”?你没看到这些!

·对话方正徐立东:认真做事,终有收获

·印刷也有温度——“盲文毕业纪念册”诞生记

人眼分辨 PPI_扒一扒,PPI、LPI、DPI分辨率三兄弟~相关推荐

  1. 分辨率并不是越高越好,因为人眼分辨能力存在极限

    显示屏清晰度 对于计算机上显示的文字和图片,正常来说显示器分辨率越高清晰度就会更高,不过有时我们切换一些超高分辨率后也识别不出差异,这是为什么? 简单来说显示清晰度由物理因素和视力因素.物理因素就是设 ...

  2. 185页深度报告 扒一扒AI金融的老底【附下载】

    来源:智东西 概要:2016年,中国爆出8家独角兽,总估值964亿美元位冠全球:2017年,毕马威全球百佳金融科技企业前三甲,蚂蚁金服.众安保险.趣店,皆来自中国:过往两年,中国成立的金融科技创企达1 ...

  3. 扒一扒EOS的前世今生

    扒一扒EOS的前世今生 EOS是什么?   EOS可以认为是Enterprise Operation System的缩写,即商用的一款分布式区块链操作系统,EOS主要为了解决百万级用户的使用问题,为企 ...

  4. 扒一扒MathType不为人知的技巧

    MathType作为一款编辑数学公式的神器,很多人在使用它时只是很简单地使用了一些最基本的模板,很多功能都没有使用.MathType功能比你想象中的大很多,今天我们就来扒一扒MathType那些不为人 ...

  5. oraclek导出表_全兼容Oracle?扒一扒浪潮K-DB是咋做的?

    [IT168 评论]"如果说Linux是类Unix操作系统,那么K-DB就是类Oracle数据库.会Unix的人,上手Linux要多少时间,则Oracle DBA上手K-DB就要多少时间.& ...

  6. 扒一扒.NET Core的环境配置提供程序

    前言 很久之前,在玩Docker的时候顺便扒了扒,最近,终于下定决心花了些时间整理并成文,希望能够给大家一些帮助. 目录 .NET Core中的配置 ASP.NET Core中的配置 扒一扒环境变量提 ...

  7. ASP.NET Core 2.2 : 十六.扒一扒2.2版更新的新路由方案

    ASP.NET Core 2.2 : 十六.扒一扒2.2版更新的新路由方案 原文:ASP.NET Core 2.2 : 十六.扒一扒2.2版更新的新路由方案 ASP.NET Core 从2.2版本开始 ...

  8. 扒一扒中断为什么不能调printf

    [导读] 大家好,我是逸珺. 前面说会写一下Modbus-RTU的实现,写了1000多字了,有兴趣的稍等一下哈.前面在一个群里看到一个朋友在一个串口接收中断里打印遇到了问题,今天聊下这个话题. 扒一扒 ...

  9. View绘制详解(三),扒一扒View的测量过程

    所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都 ...

最新文章

  1. java连连看(GUI)
  2. fs:[124]对应CurrentThread
  3. jupyter 多个python版本
  4. linux服务器的功能需求,Linux下的各种服务器技术及配置 (毕业论文).doc
  5. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
  6. php mysql 常用语句_PHP mysql基本语句指令
  7. BZOJ 4710 [Jsoi2011]分特产 解题报告
  8. EasyUI的简单介绍
  9. 15天学习MVC后的小结(分享经历与想法)
  10. sqlServer 获取最新的一条数据
  11. 企业打开云HBase的正确方式,来自阿里云云数据库团队的解读
  12. MySQL基础一些概念一些用法
  13. java中文乱码怎么解决_java中文乱码解决总结
  14. IIS的ISAPI接口简介
  15. Inception(盗梦空间)及代码实现
  16. VUE中toast的使用与开发
  17. 【江枫 】Oracle 9i和10g在create index和rebuild index的统计信息的区别
  18. python列表(list)
  19. SpringMVC中使用hibernate-validator的坑
  20. 步步精心,打造高德 AR 实景步行导航(设计篇)

热门文章

  1. java获取作用域的值_Java-springMVC框架:springMVC取参数值、把值放入作用域方法
  2. java digests.generatesalt_Java DigestUtils.sha1Hex方法代碼示例
  3. python绘制四边形_python shapely.geometry.polygon任意两个四边形的IOU计算实例
  4. html如何添加子页面,html5 父页面调用子页面js方法
  5. linux data目录权限,Linux 文件目录权限
  6. C++新特性探究(八):初始化列表(Initialization List)再探究
  7. C++之指针探究(十八):typedef结合结构体指针
  8. 全栈python_Pyodide:在浏览器端实现Python全栈科学计算
  9. list 转set_MapStruct高级用法:List和String互转
  10. python 分词nlp,学习NLP的第四天——hanlp字典分词的Python实现,4,HanLP,词典