Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/blog.zhujinhui.net/wp-includes/functions.php on line 6114

Notice: 函数 _load_textdomain_just_in_time 的调用方法不正确twentyseventeen 域的翻译加载触发过早。这通常表示插件或主题中的某些代码运行过早。翻译应在 init 操作或之后加载。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 6.7.0 版本添加的。) in /var/www/blog.zhujinhui.net/wp-includes/functions.php on line 6114
你见过这么“癫”的二维码吗? – 煅魂-JeffreyChu的修炼屋

你见过这么“癫”的二维码吗?

日常生活,我们见过的二维码中大多数都是由白底和很多黑点组成的二维条码,以X秘书表白墙的链接 为例:

http://love520.zhujinhui.net/?a=Jeffrey&b=X%E7%A7%98%E4%B9%A6&d=2024-01-01

它对应的普通二维码是这样的:

由于它是X秘书网站下的链接,想让它带有X秘书的元素符号:

还能给它点颜色瞧瞧,让它看起来像个真正的logo

既然是个表白墙链接,心动的特效总要有吧:

当然还可以更“癫”点,生成一个“贪吃蛇”的二维码:

反正一个二维码有多“癫”,全看“艺术家”的代码艺术。

言归正传,这些二维码图片是到底是怎么生成的呢?这其实是python的一个很有趣的第三方库——amzqr实现的,GitHub地址为:

https://github.com/x-hw/amazing-qr

简介

amzqr是一个二维码生成器,它帮助我们可生成普通二维码带图片的艺术二维码(黑白与彩色)动态二维码(黑白与彩色)

安装

pip install amzqr

使用方法

它有两种使用方式,一个是命令行,一种在python中直接调用库

命令行方式

提示:如果你尚未安装 amzqr ,以下内容请使用python(3) amzqr.py 而非amzqr 。)

amzqr  Words    # 二维码扫描解析出来的字符串,可以是url也可以是普通文字
      [-v {1,2,3,...,40}]   # 二维码边长,1~40
      [-l {L,M,Q,H}]  # 纠错等级L、M、Q、H,依次升高,默认H
      [-n output-filename]  # 生成的二维码图片名称,格式可以是 .jpg, .png ,.bmp ,.gif 
      [-d output-directory]  # 生成的二维码图片所在目录,默认当前目录
      [-p picture_file]  # 底图,二维码生成后与这个指定的底图融合,可以是静态图片,也可以是gif,默认为空
      [-c]  # 是否涂色,不传则不
      [-con contrast]  # 用来调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
      [-bri brightness]  # 用来调节图片的亮度,其余用法和取值与 -con 相同。

比如 上面的“X秘书表白墙LOGO版二维码.png”的生成例子:

amzqr  "http://love520.zhujinhui.net/?a=Jeffrey&b=X%E7%A7%98%E4%B9%A6&d=2024-01-01"  -p xmishu.jpg -n xmishu_color_qrcode.png -c
作为导入文件
# 安装模块后
from amzqr import amzqr
version, level, qr_name = amzqr.run(
    words,  # 二维码扫描解析出来的字符串,可以是url也可以是普通文字
    version=1,  # 二维码边长,1~40
    level='H',  # 纠错等级L、M、Q、H,依次升高,默认H
    picture=None,  # 底图,二维码生成后与这个指定的底图融合,可以是静态图片,也可以是gif,默认为空
    colorized=False,  # 是否涂色
    contrast=1.0, # 用来调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
    brightness=1.0,  # 用来调节图片的亮度,其余用法和取值与 -con 相同。
    save_name=None,  # 生成的二维码图片名称,格式可以是 .jpg, .png ,.bmp ,.gif 
    save_dir=os.getcwd()  # 生成的二维码图片所在目录,默认当前目录
)

最近520也是快到了,那么你可以找来一个动漫亲吻的gif,或者用你们真人拍摄视频后转过来的gif也可以,做picture底图来生成代表爱情的二维码:

生成一个有亲吻画面的二维码:

from amzqr import amzqr

amzqr.run(
    "http://love520.zhujinhui.net/?a=Jeffrey&b=X%E7%A7%98%E4%B9%A6&d=2024-01-01",
    picture="kiss.gif",
    save_name="kiss_qrcode.gif",
    colorized=True,
)

生成效果:

注意事项

  • 请尽可能采用正方形或近似正方形的图片,否则可能会被压缩导致比例失衡,因为二维码最终都是正方形图片
  • 建议在图片尺寸大的时候使用 -v 的值也应该适当变大。
  • 尽可能少用有透明无色部分的图片

今天你学会了吗?学会了赶紧去试试吧!欢迎大家交流讨论!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注