zoukankan      html  css  js  c++  java
  • 实现定制二维码(有空研究下)

    任意链接生成二维码,并把把图片镶嵌在二维码中

    import qrcode # 二维码生成包
    from PIL import Image # 图片处理包
    
    
    def creat_qrcode(url,filename):
        qr = qrcode.QRCode(
            version= 1,
            # 设置容错率未最高
            error_correction=qrcode.ERROR_CORRECT_H,
            box_size=10, # 应该是二维码尺寸
            border= 4, # 二维码边框,边界宽度
        )
        qr.add_data(url) # 把链接传进去
        qr.make(fit=True) # fit等于true是干啥为了制作
        img = qr.make_image() # 不知
        # 设置二维码为彩色
        img = img.convert('RGBA')
        icon = Image.open(filename) # 调用Image模块中的open函数,导入二维码中的图标
        w,h = img.size
        factor = 4 # 不知
        size_w = int(w/factor) # 为了之后的尺寸运算么
        size_h = int(h/factor)
        icon_w,icon_h = icon.size # 和上面img二维码一样,不过这里是图标
    
        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((w-icon_w)/2) # 设置二维码图片大小
        h = int((h-icon_h)/2)
        icon = icon.convert('RGBA')
        newing = Image.new('RGBA',(icon_w + 8,icon_h+8),(255,255,255)) # 不知
        img.paste(newing,(w-4,h-4),newing) # 不知
        img.paste(icon,(w,h),icon)
        img.save('qr2.png',quality = 100) #quality = 100难道是像素
    
    if __name__ == '__main__':
        # 这里不能直接加图片名,不知为啥,明明放在同一文件夹下
        creat_qrcode('http://120.27.220.235:8001/',r'test\logo1.png') # 估计Image.open函数的传参有关系
        print('完成')
        
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    ubuntu golang nginx
    如何写易于调试的代码
    Topic 2: golang string operation
    topic 1: golang file operation
    【转帖】ArtisticStyle----很好用的C/C++样式格式化工具
    【转帖】C++经典书籍汇总
    (转载)MonoBehaviour的事件和具体功能总结
    unity3d的延时调用函数
    unity3D 实现手机的双指触控和Input类touch详解
    Lua 关于"."与":"号的用法区别
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15141777.html
Copyright © 2011-2022 走看看