将数据保存到图片制作自己的二维码工具

易语言 2020-06-15 15:38:12

1.一个像素由占4个字节.分别是r,g,b,a. 对于可打印出来的情况下,a通道是被忽略的.所以可利用的有三个字节.分别是r/g/b.

在考虑像素会失真的情况下,颜色相差越大则越容易识别出来.所以二维码为什么大部分都是黑白两色.

当然也有彩色的.但背景肯定是浅色,像素点肯定是深色的.如果前景色和背景色越相近扫描所花费的时间就越长.

2.如何把数据转换成像素点写入图片?

已知一个像素(4字节),可以利用的有3个字节. 直接把数据字节填充到某个像素的这3个字节?

当然可以,不过得考虑到大部分情况,图片格式转换的时候就会导致像素偏差.(由于涉及到公司一个项目,所以无损格式就不详谈,各位请自行脑补.)

把数据转成二进制.一个整数占32位.一个字节就占8位. 只有0和1.对应像素0和255.

当然相应的占用尺寸就多了.比如一个整数4字节,需要占用的像素 32/3 (剩余的字节后面继续用)

数据还原的时候以127作为临界,小于或大于127的话就还原成0或1,这样就解决了图片格式转换导致像素偏差的问题了。

最后把这些二进制还原回来即可.