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格式,解决了这个问题

在线转换地址: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

下面附上一个带图片的二维码:

时间: 2024-08-13 18:01:43

python将url转换成二维码的相关文章

JS框架_(Qrcode.js)插件将你的内容转换成二维码格式

二维码格式演示 (扫描此二维码会自动跳转到我博客的首页O(∩_∩)O~) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>qrcode.js插件将你的内容转换成二维码格式</title> <link rel="stylesheet" href="css/style.cs

把url链接转换成二维码的工具类

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.

利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcode qr = qrcode.QRCode( version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=20, border=4, ) qr.add_data('你要生成的文件') qr.make(fit=True) img = q

chrome插件开发-----------将网址转化成二维码website2QRcode

微信自带的浏览器无法输入链接,只能通过扫描二维码实现,但是有时候看到一个有趣的网站,想分享,还得先去将链接转化成二维码的网站,先转成二维码,再扫描,有点麻烦.所以写了一个插件,直接生成二维码. 需要引用的文件:jquery.qrcode.js(将文字转化成二维码)和jquery 用的是Browser Actions实现,用户点击图标,在popup.html中显示二维码,代码如下: manifest.json: { "name": "WebSite2QRcode",

java文本显示成二维码

需求:数据库中存储的是字符串,将该字符串显示成二维码,扫描二维码后显示字符串的信息 实现原理:从数据库中先获取数据,然后根据Qrcode生成图片,然后将该图片显示出来即可. 关键代码: 1 public static void getQrcodeImg(String content,String imgPath){ 2 int width=140; 3 int height=140; 4 //实例化Qrcode 5 Qrcode qrcode=new Qrcode(); 6 //设置二维码的排错

把一维数组转换成二维数组

有一个一维数组,想把它变成m*n形式的二位数组, $arr = array(....); // 一维数组 $m = ceil(count($arr)/n); $array = array(); for ($i = 0, $j = 0; $i < $m; $i++) { for ($k = 0; $k < n; $k++) { $temp = $arr[$j++]; if($temp) $array[$i][$k] = $temp; } } 把一维数组转换成二维数组

java list map转换成二维数组

/** * *@Title: ListToArray *@Description: list列表转换成二维数组 *@Author: Administrator *@Since: 2018年1月7日下午2:01:25 *@param: @param list *@param: @param KeyLenght每行的列数,按最长的计算 *@param: @return *@return Object[][] */ private Object[][] ListToArray(List<Map<St

使用python调用zxing库生成二维码图片

(1)     安装Jpype 用python调用jar包须要安装jpype扩展,在Ubuntu上能够直接使用apt-get安装jpype扩展 $ sudo apt-get install python-jpype 关于使用Jpype调用jar包的方式.请看http://blog.csdn.net/niuyisheng/article/details/9002926 (2)     得到zxing  jar包 使用zxing第三方库生成二维码图片,关于zxing的介绍能够看其github地址:h

Python使用QRCode模块生成二维码

QRCode官网https://pypi.python.org/pypi/qrcode/5.1 简介python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode 库. 简单用法 import qrcode img = qrcode.make('hello, qrcode') img.save('test.png') 高级用法 import qrcode qr = qrcode.QRCode( version=1, error_correction=qrcod