zoukankan      html  css  js  c++  java
  • python将url转换成二维码

    准备环境
    python生成二维码,需要依赖包qrcode和PIL(二维码的实质就是一个url。)
    python3安装PIL:pip install PIL
    python2安装PIL:pip install pillow
     
    生成二维码的方法
    1.将url生成二维码的最简单的示例如下:
    import qrcode
    img=qrcode.make("www.zhuanzhuan.com")
    img.save("./test.png")
     
    2.可以通过qrcode的一些配置项来更改生成二维码的样式,比如宽度、大小、容错系数
    qr=qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=8,
        border=2
        )
    3.可以将本地的一个图片粘贴到二维码图片上(限制图片大小)
    代码如下:
    import qrcode
    from PIL import Image
     
    url="www.zhuanzhuan.com"
    qr=qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=8,
        border=2
        )
    qr.add_data(url)
    qr.make(fit=True)
    img=qr.make_image()
    img=img.convert("RGBA")
    icon=Image.open("./logo.png")
    img_w,img_h=img.size
    factor=4
    size_w=int(img_w/factor)
    size_h=int(img_h/factor)
     
    icon_w,icon_h=icon.size
    if icon_w>size_w:
        icon_w=size_w
    if icon_h>size_h:
        icon_h=size_h
    icon=icon.resize((icon_w,icon_h),Image.ANTIALIAS)
     
    w=int((img_w-icon_w)/2)
    h=int((img_h-icon_h)/2)
    img.paste(icon,(w,h),icon)
     
    img.save("./test.png")
     
    注意:
    1.加上的图片必须是本地图片,用网络图片不可以这么写
    2.粘贴的图片必须和二维码生成的格式一致,都是png
     
    遇到的问题:
    1.二维码增加图片这步,报错: ValueError: bad transparency mask
    原因:说是python的PIL合并图片时出错,但是我的两个图片都是png,然后根据网上搜索到的方案转换了一下要粘贴的本地图片,重新转换成png格式,解决了这个问题
     
    2.python2+mac和python2+Ubuntu的系统,PIL装不上,使用qrcode去生成二维码时报错:IOError: encoder zip not available
    解决方法:
    1.先将PIL卸载,然后重新安装pillow
    pip uninstall PIL
    pip install pillow
    有的安装pillow的时候还会报缺东西的问题,有可能是缺下面这些,直接安装一般都解决了
    apt-get install libjpeg62 libjpeg62-dev zlib1g-dev libfreetype6 libfreetype6-dev
    下面附上一个带图片的二维码:
  • 相关阅读:
    【AS3代码】小游戏打飞机源代码
    【AS3代码】键盘的输入和输出
    PHP多维数组排序
    【AS3代码】一个完整的游戏框架
    【AS3代码】小画板升级版(带重绘回放和清空功能)
    Liunx命令工作总结(1)
    Java NIO基础 我们到底能走多远系列(17)
    ibatis 一对多 解决方案
    图片上传+预览+剪切解决方案我们到底能走多远系列(20)
    Liunx命令工作总结(2)
  • 原文地址:https://www.cnblogs.com/meitian/p/5504995.html
Copyright © 2011-2022 走看看