searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

【趣味编程】带背景的二维码

2024-09-04 09:42:34
6
0

写在前面

(1)我计划分享的趣味编程都会基于 Python 语言,理由是 Python 便于开发与调试,而且 Python 库很多,用 Python 能干很多有意思的事情。
(2)所有分享内容仅用于娱乐与学习。

效果展示

今天要给大家分享是:替换二维码的背景。可以将自己的微信二维码或者公众号二维码转成带背景的二维码。

这里需要说明一点,微信的个人二维码是可以换样式的,但不支持替换成自定义的二维码,只能随机切换。个人觉得虽然能够换换样式,但不满足自己的需求。因为不能上下切换,只能随机切。我曾经花了5分钟才切回之前觉得还可以的一个样式,太难了。

有同学可能会问,微信都不支持自定义二维码,你弄个二维码转换有什么用呢?个人感觉,可以截图在其他地方用,比如说邮件、名片等等。特别是对于公众号二维码,用处还是有的。当然,这只是我个人的自嗨行为,介意勿用

如何实现

对于如何生成有背景的二维码,网上一搜就知道答案:myqr,一个Python库。简单易用,安装后,命令行输入链接以及背景图即可。

但,本次要分享的是“将微信二维码转成背景二维码”,需要多做一步,即从微信二维码中获取对应的链接信息。所以,步骤有二:

  • 从微信二维码中获取链接信息
  • 将链接信息生成有背景的二维码

相关依赖

要完成本文介绍内容,需要准备一台带Python环境电脑。如何装Python,请自行搜索。这里只列出完成本次编程需要用到的Python库。

OpenCV

本次编程依赖OpenCV库,用于解析微信二维码中的链接。具体如下:

  • opencv-python==4.5.2.52
  • opencv-contrib-python==4.5.2.52

命令如下:

```

pip install opencv-python==4.5.2.52 opencv-contrib-python==4.5.2.52

```

为什么要用OpenCV,因为微信二维码有其特定的解码方式,使用pyzbar是不行的。另外,对OpenCV的版本也有要求,版本不能低于4.5.2,因为低版本没有微信二维码的解析方法。

另外,上述两个库的版本需要保持一致,否则会出现异常报错。

mypr

mypr库用于生成有背景的二维码,简单好用,无版本要求,直接装即可。

命令如下:

```

pip install myqr

```

Image

Image库用于展示最后的二维码图片。本次实验不强依赖该库,因为myqr会生成二维码图片。使用该库只是为了方便效果展示。

相关源码

接下来,进入源码部分。代码很简单,不到20行。

引入相关的库

```

import cv2 from MyQR

import myqr from PIL

import Image

```

解析微信二维码链接

```

source_picture_path = "source.jpg"

detect_obj = cv2.wechat_qrcode_WeChatQRCode()

img = cv2.imread(source_picture_path)

res, _ = detect_obj.detectAndDecode(img)

if len(res) > 0:

    link_str = res[0]

```

生成带背景的二维码

```

# 背景图路径

background_picture_path = "background.png"

# 需要生成带背景图二维码的图片路径

target_path = "target.png"

myqr.run(

    words=link_str,

    picture=background_picture_path,

    save_name=target_path,

    colorized=True,

)

```

展示生成的图片

```

img = Image.open(target_path)img.show()

```

最终代码

最终的效果如下所示(借助JupyterLab进行单步调试):

 

总结

本文分享了如何生成带背景的微信二维码,感觉效果还挺赞。不用很复杂的代码实现,只需不到二十行的Python代码即可。后续还会继续为大家整理有意思的编程实验,希望大家喜欢。一起加油吧,各位。


 

 

0条评论
0 / 1000
元坑昊
4文章数
0粉丝数
元坑昊
4 文章 | 0 粉丝
原创

【趣味编程】带背景的二维码

2024-09-04 09:42:34
6
0

写在前面

(1)我计划分享的趣味编程都会基于 Python 语言,理由是 Python 便于开发与调试,而且 Python 库很多,用 Python 能干很多有意思的事情。
(2)所有分享内容仅用于娱乐与学习。

效果展示

今天要给大家分享是:替换二维码的背景。可以将自己的微信二维码或者公众号二维码转成带背景的二维码。

这里需要说明一点,微信的个人二维码是可以换样式的,但不支持替换成自定义的二维码,只能随机切换。个人觉得虽然能够换换样式,但不满足自己的需求。因为不能上下切换,只能随机切。我曾经花了5分钟才切回之前觉得还可以的一个样式,太难了。

有同学可能会问,微信都不支持自定义二维码,你弄个二维码转换有什么用呢?个人感觉,可以截图在其他地方用,比如说邮件、名片等等。特别是对于公众号二维码,用处还是有的。当然,这只是我个人的自嗨行为,介意勿用

如何实现

对于如何生成有背景的二维码,网上一搜就知道答案:myqr,一个Python库。简单易用,安装后,命令行输入链接以及背景图即可。

但,本次要分享的是“将微信二维码转成背景二维码”,需要多做一步,即从微信二维码中获取对应的链接信息。所以,步骤有二:

  • 从微信二维码中获取链接信息
  • 将链接信息生成有背景的二维码

相关依赖

要完成本文介绍内容,需要准备一台带Python环境电脑。如何装Python,请自行搜索。这里只列出完成本次编程需要用到的Python库。

OpenCV

本次编程依赖OpenCV库,用于解析微信二维码中的链接。具体如下:

  • opencv-python==4.5.2.52
  • opencv-contrib-python==4.5.2.52

命令如下:

```

pip install opencv-python==4.5.2.52 opencv-contrib-python==4.5.2.52

```

为什么要用OpenCV,因为微信二维码有其特定的解码方式,使用pyzbar是不行的。另外,对OpenCV的版本也有要求,版本不能低于4.5.2,因为低版本没有微信二维码的解析方法。

另外,上述两个库的版本需要保持一致,否则会出现异常报错。

mypr

mypr库用于生成有背景的二维码,简单好用,无版本要求,直接装即可。

命令如下:

```

pip install myqr

```

Image

Image库用于展示最后的二维码图片。本次实验不强依赖该库,因为myqr会生成二维码图片。使用该库只是为了方便效果展示。

相关源码

接下来,进入源码部分。代码很简单,不到20行。

引入相关的库

```

import cv2 from MyQR

import myqr from PIL

import Image

```

解析微信二维码链接

```

source_picture_path = "source.jpg"

detect_obj = cv2.wechat_qrcode_WeChatQRCode()

img = cv2.imread(source_picture_path)

res, _ = detect_obj.detectAndDecode(img)

if len(res) > 0:

    link_str = res[0]

```

生成带背景的二维码

```

# 背景图路径

background_picture_path = "background.png"

# 需要生成带背景图二维码的图片路径

target_path = "target.png"

myqr.run(

    words=link_str,

    picture=background_picture_path,

    save_name=target_path,

    colorized=True,

)

```

展示生成的图片

```

img = Image.open(target_path)img.show()

```

最终代码

最终的效果如下所示(借助JupyterLab进行单步调试):

 

总结

本文分享了如何生成带背景的微信二维码,感觉效果还挺赞。不用很复杂的代码实现,只需不到二十行的Python代码即可。后续还会继续为大家整理有意思的编程实验,希望大家喜欢。一起加油吧,各位。


 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0