韵湖葱白 发表于 2022-5-24 19:43

【平头哥RVB2601开发板试用体验】显示二维码


## 前言

显示二维码最关键的步骤是如何把二维码转化为0,1数组。

我的步骤是:

(1)通过二维码工具生成一个黑白二维码。

(2)通过图像工具把二维码缩小成64*64的大小,并弄成bmp单色模式。

(3)通过代码转化为0,1数组。

(4)加载到板子上进行显示。

# 图片转01数python代码

随便写的代码,没管规范性。

```
# coding: utf-8

from PIL import Image
import numpy

l = []
im = Image.open('趣python.bmp')
matrix = numpy.asarray(im)

for ms in matrix:
    tmp = []
    for m in ms:
      if m > 127:
            tmp.append(0)
      else:
            tmp.append(1)

    l.append(*32 + tmp + *32)

print(l)

```

得到的结果类似这样的:

```
[, ..., [..., 1, 1, 1, 1, 1]]
```

把 `[` 和 `]` 替换为 `{` 和 `}`,并把这个数组赋值给g_bm_rv就可以显示了。

# 结果展示

![](https://s2.loli.net/2022/05/24/tyo42XW8vnaULPI.jpg)

![](https://s2.loli.net/2022/05/24/RBmI1HNU53yniaP.jpg)

不得不说,还是黑底白字看起来更高级一些。

wangerxian 发表于 2022-5-25 09:03

<p>但是白底黑字更容易扫描出来~</p>

led2015 发表于 2022-5-25 21:26

<p>真能实用扫出来吗,编程这么短,效果却不错</p>

韵湖葱白 发表于 2022-5-26 10:49

led2015 发表于 2022-5-25 21:26
真能实用扫出来吗,编程这么短,效果却不错

<p>可以的,这是花了大概半个小时折腾出来的,</p>

<p>你用微信扫一下第二个二维码试试!<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/hug.gif" width="60" /></p>

<p>&nbsp;</p>

<p>其实可以处理的更好一点,处理的图有点糊了,</p>

<p>重点还是前期的图像处理,我后面改进一下,可以看到有一些边缘没处理好</p>

freebsder 发表于 2022-5-27 17:57

<p>我以为是动态生成的图片呢,原来是显示的bmp,可以试试动态生成。</p>
页: [1]
查看完整版本: 【平头哥RVB2601开发板试用体验】显示二维码