ICO是Windows的图标文件格式,虽然看起来像普通图片,但内部结构和PNG、JPG完全不同。本文详解ICO文件结构,帮你深入理解这种特殊格式。
ICO文件的整体结构
ICO文件由三部分组成:
- ICONDIR:文件头部,6字节
- ICONDIRENTRY:目录项,每个16字节
- 图像数据:实际的图片数据
ICONDIR文件头(6字节)
文件开头6字节是头部信息:
- Reserved(2字节):保留字段,必须为0
- Type(2字节):文件类型,ICO为1,光标为2
- Count(2字节):文件包含的图像数量
一个favicon.ico可以包含多张图片,Count字段记录图片总数。
ICONDIRENTRY目录项(每个16字节)
每张图片对应一个16字节的目录项:
- Width(1字节):图片宽度(像素),0表示256
- Height(1字节):图片高度(像素),0表示256
- ColorCount(1字节):颜色数量,0表示256色以上
- Reserved(1字节):保留字段,必须为0
- Planes(2字节):颜色平面数,通常为1
- BitCount(2字节):位深度,如32表示32位真彩色
- BytesInRes(4字节):图像数据大小
- ImageOffset(4字节):图像数据偏移量
图像数据
图像数据可以是BMP格式(不带文件头)或PNG格式。现代ICO通常使用PNG格式存储大尺寸图片,体积更小。
多尺寸ICO的优势
一个ICO文件包含多个尺寸,系统会根据使用场景自动选择最合适的尺寸,保证不同场景下图标都清晰。
需要生成多尺寸ICO文件时,使用图捷智转PNG转ICO在线工具,自动生成符合标准的多尺寸favicon.ico。