不同图像格式的 Base64 开头标识
每种图像格式有固定的文件头(magic number) ,经过 Base64 编码后会形成特定的开头字符串:
| 图像格式 | 文件头(十六进制) | Base64 编码开头 |
|---|---|---|
| JPEG / JPG | FF D8 FF | /9j/ |
| PNG | 89 50 4E 47 0D 0A 1A 0A | iVBORw0KGgo |
| GIF | 47 49 46 38(即 "GIF8") | R0lGODlh(GIF87a)或 R0lGODdh(GIF89a) |
| WebP | 52 49 46 46 ?? ?? ?? ?? 57 45 42 50 | UklGR |
PNG 的 Base64 开头详解
PNG 文件的前 8 字节是固定的:
89 50 4E 47 0D 0A 1A 0A
将这 8 个字节转换为 ASCII 并做 Base64 编码:
- 原始字节 → Base64 编码结果为:
iVBORw0KGgo...
所以,所有合法的 PNG 图像在 Base64 编码后都以 iVBORw0KGgo 开头。
✅ 示例:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACCCAMAAADQNkiAAAAA...
正则表达式匹配 PNG Base64
如果你要匹配纯 Base64 的 PNG 数据(不含 data URL 前缀):
^iVBORw0KGgo[A-Za-z0-9+/=]*$
如果包含完整 Data URL:
^data:image/png;base64,iVBORw0KGgo[A-Za-z0-9+/=]*$