使用这个简单的工具从任何文本或网址生成二维码。通过干净、简约的界面即时创建可扫描的二维码,并一键下载。
在上方输入文本或网址以生成二维码。二维码将在您输入时自动更新。
QR 码(快速响应码)彻底改变了我们在数字时代共享信息的方式。我们的免费 QR 码生成器允许您即时为 URL、文本、联系信息等创建 QR 码。这个简单、用户友好的工具生成可扫描的 QR 码,可以下载并在各种平台和材料中使用,架起了物理和数字世界之间的桥梁。
QR 码于 1994 年由日本汽车公司 Denso Wave 发明,用于在制造过程中跟踪车辆。如今,这种二维条形码已在营销、支付、信息共享和无数其他应用中变得无处不在。在 COVID-19 大流行期间,企业寻求无接触解决方案(如菜单、支付和信息共享),使其受欢迎程度激增。
我们的 QR 码生成器专注于简便和高效,允许任何人无需技术专长或复杂配置即可创建功能性 QR 码。
QR 码以黑色方块在白色背景上排列的信息模式存储信息。与只能水平存储信息的传统条形码不同,QR 码可以水平和垂直存储数据,从而能够容纳更多信息。
标准 QR 码由几个关键组件组成:
当您在我们的 QR 码生成器中输入文本或 URL 时,以下过程会发生:
QR 码包括内置的错误更正功能,即使部分损坏或遮挡也能被读取。共有四个错误更正级别:
我们的生成器使用最佳错误更正级别,以平衡代码大小和可靠性。
QR 码的数据容量取决于其版本(大小)和错误更正级别。计算 QR 码可以包含的最大位数的公式为:
其中数据代码字由以下公式确定:
对于版本 1 的 QR 码,使用错误更正级别 L:
可以编码的字符数量取决于编码模式:
QR 码使用 Reed-Solomon 错误更正代码来检测和纠正错误。可以纠正的错误数量为:
其中:
Reed-Solomon 错误更正过程可以用数学表示为:
其中:
掩码模式应用于 QR 码,以确保黑白模块的最佳分布。通过评估 8 种可能的掩码模式(0-7)中的每一种的惩罚分数,选择惩罚分数最低的掩码。
惩罚分数根据以下四条规则计算:
使用我们的工具创建 QR 码非常简单,无需技术知识。请按照以下简单步骤操作:
1 <input type="text" id="qr-input" placeholder="输入 URL 或文本" value="https://example.com">
2
1 document.getElementById('generate-btn').addEventListener('click', function() {
2 const data = document.getElementById('qr-input').value;
3 generateQRCode(data, 'qr-output');
4 });
5
6 function generateQRCode(data, elementId) {
7 // 清除先前的 QR 码
8 document.getElementById(elementId).innerHTML = '';
9
10 // 生成新的 QR 码
11 new QRCode(document.getElementById(elementId), {
12 text: data,
13 width: 256,
14 height: 256,
15 colorDark: "#000000",
16 colorLight: "#ffffff",
17 correctLevel: QRCode.CorrectLevel.H
18 });
19 }
20
1 document.getElementById('download-btn').addEventListener('click', function() {
2 const canvas = document.querySelector('#qr-output canvas');
3 if (canvas) {
4 const url = canvas.toDataURL('image/png');
5 const a = document.createElement('a');
6 a.download = 'qrcode.png';
7 a.href = url;
8 document.body.appendChild(a);
9 a.click();
10 document.body.removeChild(a);
11 }
12 });
13
如果您想在自己的应用程序中实现 QR 码生成,以下是不同编程语言的示例:
1<!DOCTYPE html>
2<html>
3<head>
4 <title>QR 码生成器</title>
5 <script src="https://cdn.jsdelivr.net/npm/qrcode@1.4.4/build/qrcode.min.js"></script>
6 <style>
7 body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
8 .container { display: flex; flex-direction: column; align-items: center; }
9 input { width: 100%; padding: 10px; margin-bottom: 20px; }
10 button { padding: 10px 20px; background: #2563EB; color: white; border: none; cursor: pointer; }
11 #qrcode { margin-top: 20px; }
12 </style>
13</head>
14<body>
15 <div class="container">
16 <h1>QR 码生成器</h1>
17 <input type="text" id="text" placeholder="输入 URL 或文本" value="https://example.com">
18 <button onclick="generateQR()">生成 QR 码</button>
19 <div id="qrcode"></div>
20 </div>
21
22 <script>
23 function generateQR() {
24 const text = document.getElementById('text').value;
25 document.getElementById('qrcode').innerHTML = '';
26
27 QRCode.toCanvas(document.createElement('canvas'), text, function (error, canvas) {
28 if (error) console.error(error);
29 document.getElementById('qrcode').appendChild(canvas);
30 });
31 }
32 </script>
33</body>
34</html>
35
1# 使用 qrcode 库
2import qrcode
3from PIL import Image
4
5def generate_qr_code(data, filename="qrcode.png"):
6 qr = qrcode.QRCode(
7 version=1,
8 error_correction=qrcode.constants.ERROR_CORRECT_M,
9 box_size=10,
10 border=4,
11 )
12 qr.add_data(data)
13 qr.make(fit=True)
14
15 img = qr.make_image(fill_color="black", back_color="white")
16 img.save(filename)
17 return filename
18
19# 示例用法
20url = "https://example.com"
21generate_qr_code(url, "example_qr.png")
22
1// 使用 ZXing 库
2import com.google.zxing.BarcodeFormat;
3import com.google.zxing.WriterException;
4import com.google.zxing.client.j2se.MatrixToImageWriter;
5import com.google.zxing.common.BitMatrix;
6import com.google.zxing.qrcode.QRCodeWriter;
7
8import java.io.IOException;
9import java.nio.file.FileSystems;
10import java.nio.file.Path;
11
12public class QRCodeGenerator {
13
14 public static void generateQRCode(String data, String filePath, int width, int height)
15 throws WriterException, IOException {
16 QRCodeWriter qrCodeWriter = new QRCodeWriter();
17 BitMatrix bitMatrix = qrCodeWriter.encode(data, BarcodeFormat.QR_CODE, width, height);
18
19 Path path = FileSystems.getDefault().getPath(filePath);
20 MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
21 }
22
23 public static void main(String[] args) {
24 try {
25 generateQRCode("https://example.com", "qrcode.png", 350, 350);
26 } catch (WriterException | IOException e) {
27 System.out.println("生成 QR 码时出错: " + e.getMessage());
28 }
29 }
30}
31
1<?php
2// 使用 PHP QR Code 库
3// 首先安装:composer require endroid/qr-code
4
5require 'vendor/autoload.php';
6
7use Endroid\QrCode\QrCode;
8use Endroid\QrCode\Writer\PngWriter;
9
10function generateQRCode($data, $filename = 'qrcode.png') {
11 $qrCode = new QrCode($data);
12 $qrCode->setSize(300);
13 $qrCode->setMargin(10);
14
15 $writer = new PngWriter();
16 $result = $writer->write($qrCode);
17
18 // 保存到文件
19 $result->saveToFile($filename);
20
21 return $filename;
22}
23
24// 示例用法
25$url = 'https://example.com';
26$file = generateQRCode($url);
27echo "QR 码已保存到: " . $file;
28?>
29
1// 使用 ZXing.Net 库
2// 首先安装:Install-Package ZXing.Net
3
4using System;
5using System.Drawing;
6using System.Drawing.Imaging;
7using ZXing;
8using ZXing.QrCode;
9
10namespace QRCodeGeneratorApp
11{
12 class Program
13 {
14 static void Main(string[] args)
15 {
16 string data = "https://example.com";
17 string filePath = "qrcode.png";
18
19 GenerateQRCode(data, filePath);
20 Console.WriteLine($"QR 码已保存到: {filePath}");
21 }
22
23 static void GenerateQRCode(string data, string filePath)
24 {
25 var qrCodeWriter = new BarcodeWriter
26 {
27 Format = BarcodeFormat.QR_CODE,
28 Options = new QrCodeEncodingOptions
29 {
30 Height = 300,
31 Width = 300,
32 Margin = 1
33 }
34 };
35
36 using (var bitmap = qrCodeWriter.Write(data))
37 {
38 bitmap.Save(filePath, ImageFormat.Png);
39 }
40 }
41 }
42}
43
确保您的 QR 码有效且用户友好:
虽然 QR 码是多功能的,但了解其限制有助于创建更有效的实现:
QR 码可以存储的数据量取决于:
大致最大容量:
我们的生成器会根据您的输入自动优化这些因素。
多个因素会影响 QR 码的扫描可靠性:
在实施 QR 码时,考虑所有用户的可访问性:
QR(快速响应)码是一种以黑色方块在白色背景上存储信息的二维条形码。当用智能手机相机或 QR 读取器应用扫描时,它可以快速提供对编码信息的访问,该信息可以是网站 URL、纯文本、联系信息或其他数据类型。
QR 码可以存储不同数量的数据,具体取决于版本和错误更正级别。在最大容量下,QR 码可以存储最多 7,089 个数字字符、4,296 个字母数字字符、2,953 字节的二进制数据或 1,817 个汉字字符。
基本的 QR 码本身并不安全,因为它们只是存储和显示信息。用户在扫描未知 QR 码时应保持警惕,因为它们可能链接到恶意网站。对于实施 QR 码的企业,建议使用受信任的生成器并将用户引导到安全网站(https)。
虽然我们的简单生成器专注于创建标准、高度可扫描的 QR 码,但可以使用专业工具自定义 QR 码的颜色和徽标。然而,定制应谨慎进行,以保持可扫描性,确保足够的对比度,并且不遮挡关键模式。
QR 码本身不会过期——它们只是编码数据的可视表示。然而,如果 QR 码链接到的内容发生变化(例如,网站下线或临时促销),则目标可能会变得不可用。静态 QR 码仅包含文本信息时,扫描时始终会显示相同的信息。
我们的简单生成器创建静态 QR 码,没有内置分析功能。要进行扫描跟踪,您需要使用提供分析的动态 QR 码服务,或者链接到带有跟踪参数的 URL,以便您的网站分析可以监控。
传统条形码以一维(水平)存储数据,通常包含有限的数字数据,如产品 ID。QR 码以二维(水平和垂直)存储信息,使其能够容纳更多数据和不同类型的信息,包括 URL、文本和联系信息。
是的,QR 码包括错误更正功能,即使部分损坏或遮挡也能被扫描。可纠正的损坏程度取决于生成代码时使用的错误更正级别,较高的级别允许更多的损坏抵抗,但会降低数据容量。
大多数现代智能手机可以通过内置相机应用直接扫描 QR 码。只需打开相机并对准 QR 码即可。对于旧设备,您可能需要从设备的应用商店下载专用的 QR 码扫描应用。
我们的简单生成器设计为一次生成一个 QR 码。对于批量生成,您可能需要使用专门的软件或服务。
Denso Wave(QR 码的发明者)。 "QR 码的历史。" https://www.qrcode.com/en/history/
国际标准化组织。 "ISO/IEC 18004:2015 - 信息技术 — 自动识别和数据捕获技术 — QR 码条形码符号规范。" https://www.iso.org/standard/62021.html
Tiwari, S. (2016)。 "QR 码技术简介。" 国际信息技术会议,39-44。 DOI: 10.1109/ICIT.2016.38
Wave, D. (2020)。 "QR 码基础知识。" QR Code.com。 https://www.qrcode.com/en/about/
Winter, M. (2011)。 "扫描我:每个人的 QR 码魔法世界指南。" Westsong Publishing。
我们的 QR 码生成器使您可以在几秒钟内创建可扫描的 QR 码。无论您是链接到网站、共享联系信息,还是提供快速访问重要细节,我们的工具都可以帮助您轻松架起物理和数字世界之间的桥梁。
现在尝试我们的 QR 码生成器——无需注册,无需配置复杂设置,只需在您的指尖即时创建 QR 码。