專業 QR Code 產生器

專業線上 QR Code 產生器,在瀏覽器本機產生 QR Code,支援多種內容類型(URL、文字、WiFi、vCard、簡訊、郵件),提供豐富的樣式自訂選項,包括形狀、定位點風格、漸層色彩、Logo 疊加、外框與描邊等。支援 PNG 和 SVG 格式輸出,一鍵下載和分享功能。資料不上傳,永久免費、無浮水印,所有操作均在本機完成,確保隱私安全。

永久免費 無浮水印 純本機產生 PNG / SVG

QR Code 產生器

快速樣式預設 一鍵套用,稍後在樣式設定裡微調
樣式設定
外框
進階設定
漸層
Logo
僅在 PNG 模式下支援。圖片在本機處理,不會被上傳。
logo preview
提示:樣式僅對 PNG 畫布生效,SVG 自訂渲染即將推出。
預覽
輸入或修改內容與樣式後將自動預覽。

下載的圖片無任何浮水印,工具永久免費使用。

使用方法

  • 選擇類型(URL、文字、WiFi、vCard、簡訊、郵件),輸入或貼上內容
  • 調整尺寸、邊距、顏色、錯誤修正等級,以及樣式(形狀/定位點)、漸層、Logo、外框等
  • 選擇 PNG 或 SVG 格式
  • QR Code 將自動產生;準備就緒後可「下載」或「複製」
  • 使用 Logo 或複雜樣式時,建議將錯誤修正提升至 H,並預留足夠的靜區(空白邊)
  • 用於印刷/展示時,確保前景-背景高對比,避免過小尺寸及過度失真

功能特性

  • 純前端產生(不上傳)
  • 支援 PNG 與 SVG 輸出
  • 樣式可自訂:形狀、定位點、圓角、間隙
  • 漸層(多色、多方向)
  • Logo 疊加(可選自動提升錯誤修正等級)
  • 外框與描邊(圓角卡片風格)
  • 分享與剪貼簿(連結/圖片)
  • 多語言與主題支援

什麼是定位點(Finder)?

二維碼四角中的三個大方塊叫做 定位點(Finder),用於幫助相機快速找到二維碼的位置與角度,從而實現糾偏與解碼。它們通常是黑白相間的 7×7 模組結構(外黑、內白、中心黑)。

  • 作用:快速定位、抗旋轉、抗透視。
  • 樣式:本工具支援方形、圓角以及「圓點風格」的定位點渲染(樣式 → Finder 中選擇)。

二維碼是誰發明的?

二維碼(QR Code)由日本 Denso Wave 公司的工程師 原昌宏(Masahiro Hara) 於 1994 年發明。QR 是 “Quick Response(快速回應)” 的縮寫。

  • 發明動機:提升汽車零部件生產線的辨識效率,突破一維碼容量與讀取速度的限制。
  • 設計靈感:圍棋黑白棋子與矩陣圖案,啟發了「模組化 + 定位圖形」的高魯棒性設計。
  • 為何不用付專利費:Denso Wave 持有商標與部分專利,但明確免費開放使用,以促進生態普及(支援商用,不收授權費)。

標準規範與使用建議

  • 國際標準:ISO/IEC 18004(QR Code 2D 符號規範),定義版本、遮罩、錯誤修正、圖形結構等。
  • 容錯等級:L/M/Q/H 四級(約 7%/15%/25%/30% 可恢復),Logo 疊加建議使用更高等級。
  • 編碼內容:文字、URL、vCard、Wi‑Fi 等,建議遵循相應 URI/資料格式規範(如 WIFI:T:WPA;S:SSID;P:PASS;;)。
  • 列印與顯示:確保前景/背景對比度與靜區大小;避免過度失真、過小尺寸與過密紋理干擾。
  • 無障礙:關鍵場合建議提供備用文字/連結,避免僅以 QR Code 作為唯一入口。

透過程式語言產生 QR Code

下面給出常用語言的最簡範例,適合入門與腳手架使用:

JavaScript(Node/Browser)
// Node: npm i qrcode
const QRCode = require('qrcode');
QRCode.toFile('qrcode.png', 'https://example.com', { errorCorrectionLevel: 'M' });

// Browser (Canvas):
// <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/browser.min.js"></script>
QRCode.toCanvas(document.getElementById('canvas'), 'Hello QR', { width: 256 });
Python
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
PHP
// composer require endroid/qr-code
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;

$qr = QrCode::create('https://example.com');
$writer = new PngWriter();
$result = $writer->write($qr);
$result->saveToFile(__DIR__.'/qrcode.png');
Go
// go get -u github.com/skip2/go-qrcode
package main

import "github.com/skip2/go-qrcode"

func main() {
    qrcode.WriteFile("https://example.com", qrcode.Medium, 256, "qrcode.png")
}
Java
// Maven: com.google.zxing:core, com.google.zxing:javase
// Minimal ZXing example
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class Main {
  public static void main(String[] args) throws Exception {
    QRCodeWriter writer = new QRCodeWriter();
    BitMatrix matrix = writer.encode("https://example.com", BarcodeFormat.QR_CODE, 256, 256);
    BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
    ImageIO.write(image, "png", new File("qrcode.png"));
  }
}
Rust
// Cargo.toml
// qrcode = "0.13" 
// image = "0.24"

use qrcode::QrCode;
use image::Luma;

fn main() {
    let code = QrCode::new("https://example.com").unwrap();
    let image = code.render<Luma<u8>>().min_dimensions(256, 256).build();
    image.save("qrcode.png").unwrap();
}

提示:不同函式庫支援的樣式能力差異較大。如需進階樣式(圓點、漸層、定位點風格、外框等),可在本工具中產生 PNG/SVG 後直接使用。