我正在查阅W3 PNG规范(从头开始创建PNG库),现在我终于找到了如何创建一个绿色的1x1图像的方法。现在我正在尝试创建一个更大的混合红,绿和蓝颜色像素的图像,比如4x4的图像。不幸的是,我得到了所有的像素混合在一起,其中一些是黑色或粉红色。
细节:
- Signature: OK - IHDR: OK - Width: 4 - Height: 4 - Bit depth: 8 - Color: 2 - Filter: 0 - Compression: 0 - Interlace: 0 - IDATA: 4个块* - IEND: OK
*IDATA块:
- 4字节长度:Zlib压缩后数据的字节数 - 4个1字节类型:IDAT - X字节数据:4个4字节无符号整数,依次Zlib压缩,网络字节序
- 蓝色为255** - 绿色为65280** - 红色为16711680**
- 4字节crc:OK
**按位结果为:
细节:
- Signature: OK - IHDR: OK - Width: 4 - Height: 4 - Bit depth: 8 - Color: 2 - Filter: 0 - Compression: 0 - Interlace: 0 - IDATA: 4个块* - IEND: OK
*IDATA块:
- 4字节长度:Zlib压缩后数据的字节数 - 4个1字节类型:IDAT - X字节数据:4个4字节无符号整数,依次Zlib压缩,网络字节序
- 蓝色为255** - 绿色为65280** - 红色为16711680**
- 4字节crc:OK
**按位结果为:
alpha<<24 | red<<16 | green<<8 | blue
在alpha、蓝色、绿色和红色取值范围从0到255的情况下,这有什么问题吗?