Máy tạo mã QR chuyên nghiệp
Tạo mã QR trực tiếp trên trình duyệt, hỗ trợ thiết lập kiểu dáng (hình dạng / điểm định vị), chuyển màu, Logo, khung bên ngoài và chia sẻ. Dữ liệu không được tải lên, miễn phí vĩnh viễn và không có dấu hiệu.
Máy tạo mã QR
Hình ảnh được tải xuống không có bất kỳ dấu mốc nào và công cụ có thể sử dụng miễn phí vĩnh viễn.
Cách sử dụng
- Chọn loại (URL, Văn bản, WiFi, vCard, Tin nhắn, Email), nhập hoặc dán nội dung
- Tùy chỉnh kích thước, khoảng cách lề, màu sắc, mức độ sửa lỗi, cũng như kiểu dáng (hình dạng / điểm định vị), chuyển màu, Logo, khung bên ngoài, v.v.
- Chọn định dạng PNG hoặc SVG
- Mã QR sẽ được tự động tạo; Khi sẵn sàng, bạn có thể 'Tải xuống' hoặc 'Sao chép'
- Khi sử dụng Logo hoặc kiểu dáng phức tạp, hãy nâng mức độ sửa lỗi lên H và để lại đủ không gian yên tĩnh (khoảng trắng lề)
- Khi sử dụng cho in ấn / trưng bày, đảm bảo có độ tương phản cao giữa màu chữ và màu nền, tránh kích thước quá nhỏ và quá mất trật chân
Tính năng đặc biệt
- Tạo mã QR hoàn toàn trên phía máy khách (không tải lên)
- Hỗ trợ xuất ra định dạng PNG và SVG
- Có thể tùy chỉnh kiểu dáng: hình dạng, điểm định vị, góc bo tròn, khoảng cách
- Chuyển màu (nhiều màu, nhiều hướng)
- Đè Logo lên (tùy chọn tự động nâng mức độ sửa lỗi)
- Khung bên ngoài và viền (kiểu thẻ góc bo tròn)
- Chia sẻ và sao chép vào bảng nhớ tạm (liên kết / hình ảnh)
- Hỗ trợ nhiều ngôn ngữ và chủ đề
Điểm định vị (Finder) là gì?
Ba hình vuông lớn ở bốn góc mã QR được gọi là điểm định vị (Finder), dùng để giúp máy ảnh nhanh chóng tìm vị trí và góc của mã QR, từ đó thực hiện hiệu chỉnh và giải mã. Chúng thường có cấu trúc mô-đun 7×7 xen kẽ giữa màu đen và trắng (ngoài đen, trong trắng, tâm đen).
- Vai trò: Định vị nhanh, chống quay, chống xuyên thấu.
- Kiểu dáng: Công cụ này hỗ trợ hiển thị điểm định vị theo kiểu vuông, bo tròn và “phong cách chấm tròn” (chọn trong Phần kiểu → Finder).
Ai là người phát minh ra mã QR?
Mã QR (QR Code) được phát minh vào năm 1994 bởi kỹ sư 原昌宏 (Masahiro Hara) của công ty Denso Wave Nhật Bản. QR là viết tắt của “Quick Response (Phản ứng nhanh)”.
- Động cơ phát minh: Nâng cao hiệu quả nhận dạng trên dây chuyền sản xuất linh kiện ô tô, vượt qua giới hạn về dung lượng và tốc độ đọc của mã một chiều.
- Nhà đam mê thiết kế: Những quân cờ ván cờ vây trắng đen và các mẫu ma trận đã truyền cảm hứng cho thiết kế có tính bền cao “mô-đun + hình dạng định vị”.
- Tại sao không phải trả phí bản quyền: Denso Wave sở hữu nhãn hiệu và một số bản quyền, nhưng đã công bố miễn phí cho việc sử dụng để thúc đẩy sự phổ biến của hệ sinh thái (hỗ trợ thương mại, không thu phí cấp phép).
Tiêu chuẩn và đề xuất sử dụng
- Tiêu chuẩn quốc tế: ISO/IEC 18004 (Quy chuẩn ký hiệu 2D QR Code), định nghĩa phiên bản, mặt nạ, khôi phục lỗi, cấu trúc hình dạng, v.v.
- Mức độ容错: Bốn cấp L/M/Q/H (khoảng 7%/15%/25%/30% có thể khôi phục), khi chồng Logo lên mã QR, đề xuất sử dụng cấp cao hơn.
- Nội dung mã hóa: Văn bản, URL, vCard, Wi-Fi, v.v., đề xuất tuân theo các tiêu chuẩn định dạng URI/dữ liệu tương ứng (ví dụ
WIFI:T:WPA;S:SSID;P:PASS;;). - In và hiển thị: Đảm bảo độ tương phản giữa nền trước/nền sau và kích thước vùng yên tĩnh; Tránh sự méo mó quá mức, kích thước quá nhỏ và các đốm đứt quá dày cộn gây nhiễu.
- Độ truy cập: Trong các trường hợp quan trọng, đề xuất cung cấp văn bản/liên kết dự phòng, tránh sử dụng mã QR là cách tiếp cận duy nhất.
Tạo mã QR bằng ngôn ngữ lập trình
Dưới đây là các ví dụ đơn giản nhất của các ngôn ngữ lập trình phổ biến, phù hợp cho việc bắt đầu và sử dụng như khuôn mẫu:
// 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 });
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
// 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 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")
}
// 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"));
}
}
// 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();
}
Chú ý: Khả năng hỗ trợ kiểu dáng của các thư viện khác nhau có sự khác biệt lớn. Nếu bạn cần các kiểu dáng nâng cao (chấm tròn,渐变, phong cách điểm định vị, khung bên ngoài, v.v.), bạn có thể tạo PNG/SVG trong công cụ này và sử dụng trực tiếp.