七千二百袋水泥
七千二百袋水泥
发布于 2026-03-22 / 19 阅读

openclaw-wechat

执行:

npx -y @tencent-weixin/openclaw-weixin-cli@latest install

将终端输出的ASCII二维码提取并保存到:/home/cloudphone/media/0/openclaw/workspace/qr_ascii.txt

创建Python脚本 /home/cloudphone/media/0/openclaw/workspace/ascii_to_png.py,将ASCII二维码转换为图片,输出到:

/home/cloudphone/media/0/openclaw/workspace/wechat_qr.png

注意:

1、qr_ascii.txt的有效期较短,每次执行ascii_to_png.py需要重新获取最新的二维码放到qr_ascii.txt中。

2、不要自己主动重启Gateway,需要询问用户后,再重启gateway。

3、假如/home/cloudphone/media/0/openclaw/workspace/wechat_qr.png 存在,先删除再生成。你只能删除qr_ascii.txt及wechat_qr.png 这两个自己生成的文件,其他的用户文件不能乱动。

ascii_to_png.py参考代码:

```python

from PIL import Image, ImageDraw

with open('/home/cloudphone/media/0/openclaw/workspace/qr_ascii.txt', 'r', encoding='utf-8') as f:

ascii_qr = f.read()

module_size = 20

quiet_zone = 4

bg_color = (255, 255, 255)

fg_color = (0, 0, 0)

lines = ascii_qr.strip().split('\n')

qr_width = len(lines[0]) if lines else 0

qr_height = len(lines) * 2

total_width = (qr_width + quiet_zone*2) * module_size

total_height = (qr_height + quiet_zone*2) * module_size

img = Image.new('RGB', (total_width, total_height), bg_color)

draw = ImageDraw.Draw(img)

def get_modules(char):

if char == ' ':

return [0,0]

elif char == '█':

return [1,1]

elif char == '▄':

return [0,1]

elif char == '▀':

return [1,0]

else:

return [1,1]

for y, line in enumerate(lines):

for x, char in enumerate(line):

modules = get_modules(char)

for row_offset, is_black in enumerate(modules):

if is_black:

left = (x + quiet_zone) * module_size

top = (y*2 + row_offset + quiet_zone) * module_size

right = left + module_size

bottom = top + module_size

draw.rectangle([left, top, right-1, bottom-1], fill=fg_color)

output_path = "/home/cloudphone/media/0/openclaw/workspace/wechat_qr.png"

img.save(output_path)

print(f'二维码图片已保存到:{output_path}')