js使用qrcode去掉白底
时间: 2024-01-31 07:03:15 浏览: 34
使用qrcode库生成的二维码默认是有白色背景的,如果要去掉背景,可以通过修改canvas的背景色来实现。具体步骤如下:
1. 在生成二维码的时候,指定背景色为透明色。可以通过设置 `background` 选项为 `null` 来实现,例如:
```
var qr = new QRCode(document.getElementById("qrcode"), {
text: "http://www.example.com",
width: 256,
height: 256,
colorDark : "#000000",
colorLight : "#ffffff",
correctLevel : QRCode.CorrectLevel.H
background: null // 设置背景为透明色
});
```
2. 在canvas绘制二维码之前,先将canvas的背景色设置为透明色,例如:
```
var canvas = document.getElementById("qrcode").getElementsByTagName("canvas")[0];
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height); // 清空画布
ctx.fillStyle = "rgba(0, 0, 0, 0)"; // 将背景色设置为透明色
ctx.fillRect(0, 0, canvas.width, canvas.height); // 填充背景色
```
注意,这里需要先清空画布,再填充背景色,否则会出现黑色背景。
3. 绘制二维码,例如:
```
var imgData = qr._oDrawing._elCanvas.toDataURL("image/png");
var img = new Image();
img.src = imgData;
ctx.drawImage(img, 0, 0);
```
这样就可以生成一个带有透明背景的二维码了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)