首页 > 其他分享 >关于对“像素”的误解

关于对“像素”的误解

时间:2024-09-04 12:22:35浏览次数:10  
标签:CSS 1800 误解 像素 关于 屏幕 摄像头 物理

你很可能理解错了“像素”

被误会是表达者的宿命,却也不必因此就把别人都当无可救药的傻瓜或一概斥为别有用心。——王朔

无论是日常生活中的电子产品,还是在某些专业领域,我们都经常会使用像素(Pixel)这个词。但是很可惜,很多时候人们都误解了它。同样说“像素”,在不同语境下,表示的其实是不同的东西。

在很多人印象里,像素是有大小的,通常人们认为像素就是一个方块。还有些人甚至认为像素的大小是相同的。总的来说,这些观点都是错误的。我不确定这么下结论是否过于武断,因为我们似乎可以更抽象一些的看待“像素”:它是组成可显示实体的最小单位,又或者,它是软件能处理的最小的图像元素。

显示设备里的像素(物理像素)

先从这里说起,也许你认为像素是某个显示器上发出光亮的小方块。听起来也许像个玩笑,其实显示器上的像素大概率不是正方形,而是长方形,有些显示器上的发光元件甚至是椭圆形的。其实显示器上的像素点可以是任何形状,这取决于屏幕采用的技术和生产工艺。
https://en.wikipedia.org/wiki/Pixel_geometry
在显示设备的语境里,像素是一个发光元件,或者说那个发光元件显示的内容,通常来说就是 RGB 中一种颜色的光。在这个语境下,准确的说,我们指的是物理像素(Physical Pixel),它确实有固定形状,固定大小。我们说 1080p 或者 2k 屏幕,都是形容物理像素的数量。但要注意,即使物理像素有固定大小,它也是因设备而异的,它并不是一个通用单位,它并不是指像素就是 n 毫米这么大。举例子来说,相同数量像素的不同屏幕大小差异可能是巨大的,比如商场里巨大的广告屏幕和家用桌面显示器。

为了更好的形容显示效果,我们一般会用 PPI(Pixel Per Inch)/DPI(Dot Per Inch),表示像素的密度。这两个单位是一样的,计算方法就是对角线像素数量/屏幕对角线长度

一般而言,像素密度越高,显示效果就越好。对于电脑或者手机来说,因为我们通常是近距离观看,所以高 PPI 的意义比较明显。但如果是巨大的广告屏幕,我们都是较远距离观看,所以一般都是低 PPI 屏幕。对于人眼来说,越近的东西看的越清楚,越远的东西越模糊,即靠的越近,人眼就越能感受的到像素的存在。

开发者眼中的像素(逻辑像素)

对于 Web 开发者来说,在 CSS 中经常会指定某个 div 的大小,例如 width: 100px100px 指的就是 100 物理像素吗?并不是,其实 CSS 使用的是逻辑像素(Logical Pixel),CSS 中一像素是 1/96 inch,约为 0.26mm,也就是说 CSS 的像素单位总是和物理像素有一个比例关系。可以想象,如果 CSS 使用的是物理像素,那么不同设备上,相同的 100px 其实长度是不同的,因为不同设备的物理像素大小就是不同的,这样就给网页设计带来了很大的困难。其实不止是 CSS,大部分 UI 框架使用的所谓像素单位都是指逻辑像素。

另外,除了逻辑像素 px,在程序开发中还会用到另一个单位 pt(point),其实 pt 和逻辑像素的概念类似,它也是固定长度 1/72 inch,只是一般我们用 pt 表示字体的大小。

所谓逻辑像素(px 或 pt),也常常被开发者们称为设备无关(device independent)像素,也就是说无论用户在什么显示设备上查看软件,软件上的文字或图案都是一样大的。为了实现设备无关的长度单位,浏览器或者UI框架计算了逻辑像素到物理像素的比率,渲染时总是做这个比率的转换即可。例如 1px = 1/96 inch,某个设备是 300 ppi,那么 1px = 1/96 * 300 物理像素

操作系统桌面调节分辨率也是一样的原理,物理上 2k 的屏幕也可以设置成 1920x1080 分辨率。在 1920x1080 分辨率下,一个逻辑像素会用更多的物理像素来表示。

摄像头里的像素(不是像素的“像素”)

同样是数码产品,大家经常这么形容摄像头,“1800万像素高清摄像头”,这里的“像素”又是什么呢?是指用这个摄像头拍出来的照片里有 1800万个像素点吗?这种观点其实是不对的,但好像很多数码相机或手机的普通消费者都是这么认为的。

实际上1800万像素的摄像头,指的是摄像头感光元件的数量,感光元件越多,捕捉到的图像信息也就越丰富。

说“1800万像素的摄像头拍出的照片就会有1800万像素”是不对的,我们仔细再看看这句话,这句话里出现了两个“像素”。这句话令人困惑之处在于,这两个像素其实指代的不是同一个东西。前一个像素指的是感光元件有1800万个,后面的像素用来形容渲染照片时使用的像素数量。这两者是一一对应的吗,一个感光元件对应一个物理或逻辑像素?实际上这取决于感光传感器自身性质,也要看相机是如何处理感光传感器采集的数据的,比如相机也许会把多个传感器采集的数据过滤或者合并等等,并不一定是一一对应的关系。

照相机拍出来的照片,在没有渲染到任何一个具体的显示设备上之前,“像素”就是指的一个抽象的、由摄像头感光元件产生的数据块,比如就是一个表示颜色的数字。1800万像素就表示,这些数字有1800万个,仅此而已。至于你用 2k 屏幕显示这张照片(假设你是全屏显示照片),还是有 1080p 的屏幕来显示这张照片,那都是可以的。而且有些手机的相机其实会对拍照结果做算法处理,也可能补偿或者压缩照片。我们唯一能确定的就是摄像头的传感器越多,采集到的数据就越多。

总结

IT 领域术语滥用的现象其实非常常见,“像素”只是其中之一。下次当你再和别人说起“像素”,或者听别人说起“像素”时,我想我们大家终于能统一共识了。但愿我们想的都是对方脑海里的那个“像素”。

参考资料

  • https://en.wikipedia.org/wiki/Pixel
  • https://en.wikipedia.org/wiki/Pixel_geometry

标签:CSS,1800,误解,像素,关于,屏幕,摄像头,物理
From: https://blog.csdn.net/weixin_44799201/article/details/141875305

相关文章

  • 使用zig语言制作简单博客网站(八)归档页和关于页
    后端代码注册路由//归档文章router.get("/api/article/archive",&articleController.getArchiveArticles);model/article.zig增加以下代码///用于存放归档文章信息pubconstArchiveArticle=struct{id:u32,title:[]constu8,cate_name:......
  • 关于ELK、ELFK、EFK日志分析平台
    ELK:传统的ELK系统由Elasticsearch、Logstash、Kibana组成,由于Logstash由java语言开发的,占用资源巨大。Logstash的占用的资源甚至比Web服务本身消耗的资源还大,因此在每台web服务器上安装Logstash不合适。ELFK:后来在web服务器上部署filebeat日志采集程序,Logstash单独部署在服务器。......
  • 关于指针问题的期末复习(1)
    可以去前面文章看看我的代码库哦,宝宝们1.内存和地址 内存单元的编号==地址==指针2.指针变量和地址(&)-取地址操作符 那我们通过取地址操作符(&)拿到的地址是⼀个数值,⽐如:0x006FFD70,这个数值有时候也是需要存储起来,⽅便后期再使⽤的,那我们把这样的地址存储在指针变量......
  • C++入门基础知识48——【关于C++函数】之Lambda 函数与表达式
    成长路上不孤单......
  • 关于DID双重差分的几点说明
    在Stata中,diff命令和经典的回归方式(如xtreg)都可以用来估计DID模型,但它们在灵活性和适用场景上有所不同。1.diff命令:专门用于DIDdiff命令是Stata用户编写的一个扩展工具,专门用于执行Difference-in-Differences分析。它通过简单的语法直接估计DID,并自动提供多种常见的估计......
  • passOS|有什么关于论文写作的经验和建议分享?
    说到论文和答辩PPT,想必大家对其中的苦都深有体会。如果我们没有思路就来写论文,到时候写出来的论文就会是一团糟,没有逻辑和条理;如果只是把其他论文拿来生搬硬套、随意杂糅,就会导致知网查重率极高。焦头烂额,熬夜改了一遍又一遍,还是通不过导师关。好不容易论文完成了,还要准备答辩P......
  • LiveGBS GB28181/GB35114流媒体平台中关于接口鉴权和流媒体地址鉴权的配置和使用
    @目录1、安全控制1.1、HTTP接口鉴权1.2、流地址鉴权2、401Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.2.1、携带CookieToken2.1.2.2、携带URLToken2.2、play页面携带token2.3、携带StreamToken播放视频流2.3.1、获取视频流地址2.3.2、获取......
  • OpenCV(图像像素遍历方法比较)
    目录1.使用场景2.示例代码3.示例代码解析3.1头文件和命名空间3.2主函数main3.2.1创建并初始化矩阵A3.2.2随机初始化矩阵A的值3.2.3克隆矩阵3.2.4使用动态地址操作法进行矩阵操作并计时3.2.5使用迭代器操作法进行矩阵操作并计时3.2.6使用指针操作法进行矩阵操作并计时3......
  • 关于maven
    1、依赖范围① complie默认范围,编译和运行时失效,打包的时候也会打包。② provided编译和测试有效、运行时无效,打包不打包。③runtime编译不生效、运行生效。④ test 编译和运行测试有效。实际运行不生效。2、依赖冲突调解① 第一原则:最短路径原则② 第二原......
  • Pandas数据处理中结果误解分析:为何“平”变成了“减”
    引言在数据驱动的今天,数据分析已经到各行各业,成为决策的重要依据。Pandas作为Python中一个强大的数据处理库,为数据科学家和数据分析师提供了便捷高效的数据处理和分析手段。然而,任何工具都有其局限性,Pandas在使用过程中也难免会遇到一些问题和挑战。本文将重点探讨一个常见但容易被......