python将url转换成二维码
2016-05-18 13:47
555 查看
准备环境
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格式,解决了这个问题
在线转换地址:http://apps3.bdimg.com/store/static/kvt/431a127b816a83768c98972cd5c6a06d.swfhttp://apps3.bdimg.com/store/static/kvt/431a127b816a83768c98972cd5c6a06d.swf
2.python2+mac和python2+Ubuntu的系统,PIL装不上,使用qrcode去生成二维码时报错:IOError: encoder zip not available
解决方法:
1.先将PIL卸载,然后重新安装pillow
pip uninstall PIL
pip install pillow
有的安装pillow的时候还会报缺东西的问题,有可能是缺下面这些,直接安装一般都解决了
下面附上一个带图片的二维码:
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格式,解决了这个问题
在线转换地址:http://apps3.bdimg.com/store/static/kvt/431a127b816a83768c98972cd5c6a06d.swfhttp://apps3.bdimg.com/store/static/kvt/431a127b816a83768c98972cd5c6a06d.swf
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
下面附上一个带图片的二维码:
相关文章推荐
- pythonchallenge 解谜 Level 4
- python实现获取系统版本和mac信息上传到指定接口
- GETTING STARTED WITH PICAMERA(python picamera入门)
- python datetime时区转换
- [Python]第八讲:dict与set
- [Python]第七讲:if与while
- Python的5个基本排序算法
- ubuntu 搭建python2.x 抓取环境
- 语音情感数据库&python实现文件名的批量更改
- python实例:Django实现登录、注册
- Python TypeError: not enough arguments for format string
- python fork()创建新的进程,daemon进程
- Python实用函数
- Python Tricks(五)—— 计算 list of lists 的长度(元素个数)
- Python函数的各种参数用法(含星号参数)
- python yield的初识,Iterator与Generator
- Python Tricks(四)—— list of lists 的flatten
- 同时装了Python3和Python2,怎么用pip?
- Python正则表达式
- [XPath/Python] XPath 与 lxml (二)XPath 语法 - iFantasticMe