作者:多乐塔二维码更新时间:2025-05-05 07:01:30浏览量:22
以下是基于不同编程语言的二维码生成源代码与实现方法整理:
一、Python实现
核心代码示例
使用 qrcode 库生成基础二维码:
python
Copy Code
import qrcode
def generate_qr(text, filename):
qr = qrcode.QRCode(version=1, box_size=10, border=5)
qr.add_data(text)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
# 调用示例
generate_qr("https://example.com", "output.png")
支持自定义尺寸、颜色和容错率。
进阶功能
可集成 PIL 库添加Logo或调整二维码样式;
通过 tkinter 创建图形化界面,支持输入文本实时生成。
二、Java实现
ZXing库应用
依赖 com.google.zxing 库生成二维码:
java
Copy Code
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
public class QRGenerator {
public static BufferedImage createQR(String text, int size) throws Exception {
Hashtable<EncodeHintType, Object> hints = new Hashtable<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix matrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, size, size, hints);
BufferedImage image = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < size; y++) {
for (int x = 0; x < size; x++) {
image.setRGB(x, y, matrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
return image;
}
}
支持设置颜色、边距及LOGO叠加。
三、JavaScript实现
网页端动态生成
使用 qrcode.js 或原生API:
html
Copy Code
<input type="text" id="inputText" placeholder="输入内容">
<button onclick="generateQR()">生成</button>
<div id="qrcode"></div>
<script>
function generateQR() {
const text = document.getElementById("inputText").value;
const qrDiv = document.getElementById("qrcode");
qrDiv.innerHTML = "";
new QRCode(qrDiv, {
text: text,
width: 256,
height: 256,
colorDark: "#000000",
colorLight: "#ffffff"
});
}
</script>
可实现实时渲染与下载功能。
四、其他语言实现
PHP
使用 endroid/qr-code 库生成批量二维码,支持自定义序列号与参数传递;
Android原生
通过 Bitmap 和 MultiFormatWriter 生成并展示二维码,适配移动端界面。
五、功能扩展方向
数据统计:生成活码(动态二维码),记录扫描次数、地理位置等数据;
批量生成:结合数据库或Excel实现自动化批量生成;
安全控制:设置密码访问或有效期限制。
以上代码均需安装对应依赖库(如Python的 qrcode、Java的 ZXing),具体环境配置可参考各语言官方文档。若需完整项目源码,可从GitHub等开源平台获取模板工程。