01电脑里的图片不是一张“电子纸”

我们在屏幕上看到一张照片时,会觉得它就是一幅完整的画面。 但电脑保存它时,并不是在硬盘里放了一张缩小版的“电子纸”。

更准确地说,图片会按照某种图像格式保存成数据。 对于照片、截图这类常见的位图(Raster Image), 核心内容通常就是大量像素的颜色信息。

我们看到

一张完整图片

电脑保存

有规则的图像数据

01010110...

最终仍然是 Bit

以文件格式规定的方式组织

02照片和截图通常由很多像素组成

对于位图来说,可以把它想成一张非常细密的方格纸。 每个小格叫作像素(Pixel)

每个像素都记录一个位置上的颜色, 大量像素排在一起,我们的眼睛就会看到完整画面。

很多像素排成画面

放大以后

可以看到一个个像素格子

03图片的宽和高是什么意思?

一张位图通常会有明确的宽和高, 例如 1920 × 1080

这表示图片横向有 1920 个像素, 纵向有 1080 个像素。

1920 px 1080 px
1920 × 1080 = 2,073,600

大约 207 万个像素

04每个像素怎样记录颜色?

像素不能只告诉电脑“这里有颜色”, 它还要记录是什么颜色

很多数字图像会使用 RGB 这样的颜色表示方法, 用红(R)、绿(G)、蓝(B)三个分量表示颜色。

一个像素

需要记录颜色信息

R230
G80
B60

如果每个颜色通道使用 8 Bit, RGB 三个通道合起来就是 24 Bit, 可以表示很多不同颜色组合。

05图片文件里只有像素吗?

不一定。 一张图片文件通常还会包含很多“说明信息”。

图像数据

像素颜色,或者压缩后的图像内容

尺寸信息

例如宽度和高度

格式信息

告诉软件该怎样解释文件

元数据

某些文件还可能保存时间、相机参数等信息

06为什么图片还需要压缩?

如果把每个像素的颜色都原封不动地保存, 文件可能会很大。

所以 JPEG、PNG、WebP 等图片格式会使用不同的压缩方法, 尽量减少文件大小。

未压缩或展开后的图像数据

通常占用空间较大

压缩后的图片文件

更适合保存和传输

JPEG

常用于照片,通常采用有损压缩

PNG

常用无损压缩,也支持透明通道

WebP

可以使用有损或无损压缩,也可支持透明

07双击图片后,电脑做了什么?

打开一张图片时,程序通常不会把文件字节“直接扔给屏幕”。 它需要先理解文件格式,再把图片解码成可以显示的图像数据。

1

读取文件

从 SSD 或硬盘取得图片数据

2

识别格式

知道这是 JPEG、PNG、WebP 等

3

解码

还原出用于显示的像素数据

4

显示

图形系统把画面送到屏幕

08所有图片都是像素组成的吗?

不是。 前面讲的照片、截图主要属于位图。 但还有另一大类叫矢量图(Vector Graphics)

位图

主要记录像素

照片、截图常见

矢量图

主要记录形状、路径、线条等描述

SVG、图标、Logo 常见

矢量图显示到屏幕上时, 最终仍然要经过栅格化(Rasterization), 变成屏幕像素才能显示出来。

你已经知道了什么

  • 图片在电脑里是一组按照图像格式组织的数据,不是一张“电子纸”。
  • 照片、截图这类位图通常由大量像素组成,每个像素记录自己位置上的颜色。
  • 1920 × 1080 表示宽 1920 像素、高 1080 像素,总共有约 207 万个像素。
  • 像素颜色通常会用数字表示,例如 RGB 三个颜色通道。
  • 图片文件除了图像数据,还可能包含尺寸、格式和元数据等信息。
  • JPEG、PNG、WebP 等格式会使用不同压缩方式,因此文件大小不能只靠像素数量简单判断。
  • 打开图片时,软件会读取文件、识别格式、解码,再把图像交给图形系统显示。
  • 不是所有图片文件都直接保存像素;矢量图主要保存图形描述,显示时再栅格化成像素。

下一个问题: 既然照片是由很多小小的像素组成, 那“像素”到底是什么,一个像素里面又有什么? 下一篇:什么是像素?