PNG图像文件格式解析:从基本概念到存储结构

5星 · 超过95%的资源 需积分: 44 46 下载量 176 浏览量 更新于2024-07-19 1 收藏 1.47MB PDF 举报
PNG图像文件格式解析 PNG图像文件格式是一种广泛应用于网络图像的文件格式。PNG是可携带网络图像(portable network graphics)的英文缩写。PNG图像文件格式是从网络上开始发展的,目的是替代GIF和JPG格式,PNG图像文件格式也是当今游戏中常用的图像资源文件格式。 PNG图像文件支持的图像颜色非常丰富,存储灰度图时可使用16位色深表示,存储真彩色图像时色深更可达到48位之多。PNG图像文件支持从0~255级次的多层透明色,使用无损压缩的zlib压缩算法压缩图像数据。通常使用zlib压缩过的图像文件大小比BMP使用的RLE压缩的效果好,BMP的RLE压缩算法只支持压缩8位以下的图像,对于16位以上的真彩色图像不支持图像压缩,PNG使用的zlib压缩算法支持任何色深的图像数据压缩,压缩后的图像数据可以完整还原,相比之下JPG需要牺牲图像质量使用有损压缩来获得大的压缩率。 PNG图像文件存储结构的格式可以在http://www.w3.org/TR/REC-png.htm上找到定义。PNG文件总体上由两部分组成,分别是PNG文件标志和数据块(chunks)。其中数据块分为两类:关键数据块(critical chunk)和辅助数据块(ancillary chunks)。关键数据块(critical chunk)在PNG文件中是必须有的,而辅助数据块(ancillary chunks)是可选的。关键数据块(critical chunk)由4部分组成:文件头数据块(IHDR)、调色板数据块(PLTE)、图像数据块(IDAT)和图像结束数据(IEND)。 PNG文件标志由8字节数据组成:89504E470D0A1A0Ah,其中504E47对应的ASCII值是"PNG"。紧跟在PNG文件标志后面的数据是数据块(chunks),数据块(chunks)分为两类:关键数据块(critical chunks)和辅助数据块(ancillary chunks)。关键数据块(critical chunks)在PNG文件中是必须有的,而辅助数据块(ancillary chunks)是可选的。 在PNG图像文件中,图像数据块(IDAT)是最重要的部分,它存储着图像的所有像素数据。图像数据块(IDAT)使用zlib压缩算法对图像数据进行压缩,以减少图像文件的大小。图像结束数据(IEND)标志着图像文件的结束,它是PNG文件的最后一部分。 此外,PNG图像文件格式还支持多层透明色和alpha通道, alpha通道可以存储图像的透明度信息。PNG图像文件格式使用Big-Endian顺序存储数据,这是与BMP文件不同的。BMP文件使用Little-Endian顺序存储数据。 PNG图像文件格式是一种功能强大且广泛应用于网络图像的文件格式。它支持丰富的图像颜色,高质量的图像压缩和多层透明色等特点,PNG图像文件格式在游戏和网络图像领域中得到了广泛应用。