我正在通过W3 PNG规范(从零开始创建一个PNG库),并且我终于找到了如何创建一个绿色的1x1图像。PNG IDAT规范
现在我试图创建混合红色,绿色和蓝色像素的更大图像。假设一张4x4图片。可悲的是我得到的所有像素混合,其中一些是黑色或粉红色。
详细说明:
- 签名:行
- IHDR:OK
- 宽度:4
- 嗨:4
- 位深度:8
- 颜色:2
- 筛选:0
- 压缩:0
- 隔行:0
- IDATA:4块*
- IEND:OK
* IDATA块:
- 4个字节长度:字节数Zlib泄气后的DATA数据
- 4 * 1字节类型:IDAT
- X字节数据:4 * 4字节的无符号整数,zlib的放气时,一个接一个地,网络字节顺序
- 255用于蓝色**
- 65280绿色**
- 16711680后用于红色**
- 4个字节的CRC:OK
**按位的结果:
alpha<<24 | red<<16 | green<<8 | blue
使用alpha,蓝色,绿色和红色取值从0到255
这是什么问题?
这个问题被交叉发布到DSP,所以我复制了我的答案。 –