【发布时间】:2014-05-05 12:16:19
【问题描述】:
我正在研究 W3 PNG 规范(从头开始创建一个 PNG 库),我终于找到了如何创建绿色 1x1 图像。
现在我正在尝试创建一个更大的混合红色、绿色和蓝色像素的图像。假设是 4x4 图像。可悲的是,我将所有像素混合在一起,其中一些是黑色或粉红色。
详情:
- 签名:好的
- IHDR:好的
- 宽度:4
- 身高:4
- 位深:8
- 颜色:2
- 过滤器:0
- 压缩:0
- 隔行扫描:0
- IDATA:4 个块*
- IEND:好的
*IDATA 块:
- 4字节长度:Zlib deflate后DATA的字节数
- 4*1字节类型:IDAT
- X字节数据:4*4bytes无符号整数,Zlib放气,一个接一个,网络字节序
- 255 代表蓝色**
- 65280 为绿色**
- 16711680 为红色**
- 4 字节 crc:OK
**按位结果:
alpha<<24 | red<<16 | green<<8 | blue
Alpha、蓝色、绿色和红色的取值范围为 0 到 255
这是怎么回事?
【问题讨论】:
-
这个问题被交叉发布到 DSP,所以我在那里复制了我的答案。
标签: image image-processing png encode