[英]Arduino eInk Image2LCD - Size of c-array
此Image2LCD软件( https://www.buydisplay.com/default/image2lcd )将图像转换为c数组。 我想自己写这个基本操作,但是我不明白为什么软件为大小为200x200的输入图像输出长度为5000的数组。 对于400x400,数组大小为20000。似乎总是像素数的1/8。
正方形200x200图片的输出数组的开始和结束是这样的:
const unsigned char gImage_test[5000] = { /* 0X00,0X01,0XC8,0X00,0XC8,0X00, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X60,0X00,0X00,0X00,0X00,
0X3C,0X60,0X00,0X0C,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X00,0X00,0X7E,0X70,0X00,0X0E,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X78,0X00,0X00,
0X00,0X00,0X7F,0X78,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X3C,0X3E,0X3C,0X3F,0XF8,0X3C,0X7F,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,
...
,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,};
(是的,图像中有很多白色。)
为什么每个像素都不需要一个值?
从臀部射击在这里,但如果你使用单色,你只需要每像素(字节= 8比特)的一个位 。 可以将这些位打包为字节以提高存储效率。 说图片的前8个像素是:
0 1 0 0 0 0 0 1
如果将这八位解释为一个二进制数,则为1000001
,即十进制为65
因此,仅将65
以8位整数存储(仅占用一个字节)将存储所有8个单色像素。 不利之处在于,它不像将每个像素作为数组中的单独值那样直观。
我可能是错的,但是这种压缩直接达到了1/8分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.