• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

Python脚本生成带logo 的分享二维码

一、安装

需要安装扩展库支持如JPEG、PIL,建议先安装jpeglib.

mac下的安装方式如下 :

1:安装相关的jpeg库等

brew install libtiff libjpeg webp littlecms

2: 下载解压

到这个站点 https://pypi.python.org/pypi/Pillow/2.3.1 下载并且解压缩。

3: 打开一个 Terminal ,cd 到解压后的目录下。

4: 要想顺利安装需要执行如下的命令。

sudo sed -i ''-e 's/-mno-fused-madd//g'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
sudo rm /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.pyc

5: 安装

sudo python setup.py install

6、安装python二维码模块

当然,在脚本中用到的一个核心模块qrcode.可以通过如下方式安装:

pip install qrcode

 

二、代码如下:

# -*- coding: utf-8 -*-
import qrcode
from PIL import Image
import os
from sys import argv


def gen_qrcode(string, path, logo=""):
"""
生成中间带logo的二维码
需要安装qrcode, PIL库

:param string: 二维码字符串
:param path: 生成的二维码保存路径
:param logo: logo文件路径
:return:
"""
#设置生成二维图,版本容错等信息。
qr = qrcode.main.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=8,
border=1
)
qr.add_data(string)
qr.make(fit=True)

img = qr.make_image()
img = img.convert("RGBA")

if logo and os.path.exists(logo):
icon = Image.open(logo)
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)
icon = icon.convert("RGBA")
img.paste(icon, (w, h), icon)
img.save(path)

if __name__ == "__main__":
if len(argv) > 1:
text = argv[1]
else:
try:
text = raw_input("Enter text:")
except (KeyboardInterrupt,EOFError):
text = ''
gen_qrcode(text,"qr.png", "logo.png")

Python脚本生成带logo 的分享二维码

Pingbacks已打开。

引用地址

暂无评论

发表评论