تولیدکننده کد QR حرفهای
کد QR را در مرورگر محلی خود ایجاد کنید، از سبکها (شکل/نقاط مکانیابی)، گرادیان، لوگو، قاب بیرونی و اشتراک پشتیبانی میکند. دادهها ارسال نمیشوند، همیشه رایگان و بدون علامتهای آبی است.
تولیدکننده کد QR
تصاویر دانلود شده بدون هیچ علامت آبیاری هستند و این ابزار برای همیشه رایگان است.
روش استفاده
- نوع را (URL، متن، WiFi، vCard، پیامک، ایمیل) انتخاب کنید و محتوا را وارد یا پیست کنید.
- اندازه، حاشیه، رنگ، سطح تصحیح خطا و همچنین سبک (شکل/نقاط مکانیابی)، گرادیان، لوگو، قاب بیرونی و غیره را تنظیم کنید.
- قالب PNG یا SVG را انتخاب کنید.
- کد QR به صورت خودکار ایجاد میشود؛ پس از آمادهسازی میتوانید "دانلود" یا "کپی" کنید.
- هنگام استفاده از لوگو یا سبکهای پیچیده، توصیه میشود سطح تصحیح خطا را به H بالا ببرید و منطقه ساکت کافی (حاشیه خالی) را رزرو کنید.
- هنگام استفاده برای چاپ/نمایش، از قوی بودن کنتراست بین رنگ جلو و پسزمینه اطمینان حاصل کنید و از اندازههای خیلی کوچک و تحریفات بیش از حد خودداری کنید.
ویژگیهای عملکردی
- ایجاد کاملاً در سمت کلاینت (بدون ارسال دادهها)
- پشتیبانی از خروجی PNG و SVG
- سبک قابل سفارشی سازی: شکل، نقاط مکانیابی، گوشههای گرد، فاصله
- گرادیان (چند رنگی، چند جهت)
- جلبه کردن لوگو (به صورت اختیاری افزایش خودکار سطح تصحیح خطا)
- قاب بیرونی و خطوط قطرهای (سبک کارت با گوشههای گرد)
- اشتراک و کلیپبورد (پیوند/تصویر)
- پشتیبانی از چند زبان و تم
مقدمهای بر نقطه یابی (Finder) چیست؟
سه بلوک بزرگ در گوشههای کد QR نقطه یابی (Finder) نامیده میشوند. این نقاط به دوربین کمک میکنند تا سریع موقعیت و زاویه کد QR را پیدا کنند و در نهایت کد را رمزگشایی کنند. معمولاً از ساختار ماژولهای 7×7 سیاه و سفید (بیرونی سیاه، داخلی سفید و مرکز سیاه) تشکیل شدهاند.
- وظیفه:موقعیت یابی سریع، مقاومت در برابر چرخش و پارامترهای دید.
- استایل:این ابزار از رندر کردن نقاط یابی مستطیلی، گوشه ی نرم و "استایل نقطهای" پشتیبانی میکند (در استایل → Finder انتخاب کنید).
کد QR توسط چه کسی اختراع شد؟
کد QR (QR Code) توسط مهندس ماساهیرو هارا (Masahiro Hara) شرکت ژاپنی دنسو واو (Denso Wave) در سال ۱۹۹۴ اختراع شد. QR مخفف "Quick Response (پاسخ سریع)" است.
- انگیزه اختراع:بهبود کارایی ردیابی خطوط تولید قطعات خودرو و شکستن محدودیت ظرفیت و سرعت خواندن کد یک بعدی.
- منبع الهام طراحی:تخته بازی و شطرنج و الگوهای ماتریس، الهام بخش آن طراحی با "ماژولها + الگوهای موقعیت یابی" با استاندارد بالایی بود.
- چرا حق پتنت پرداخت نمیشود؟:دنسو واو مالک علامت تجاری و برخی از حق پتنتها است، اما به وضوح برای استفاده رایگان قرار داده است تا در普及 اکو سیستم کمک کند (پشتیبانی از تجاری سازی و عدم دریافت هزینهٔ مجوز).
استانداردها و توصیههای استفاده
- استاندارد بینالمللی:ISO/IEC ۱۸۰۰۴ (مشخصات نماد دو بعدی QR Code)، نسخه، ماسک، تصحیح خطا، ساختار گرافیکی و غیره را تعریف میکند.
- سطح容错:چهار سطح L/M/Q/H (حدود ۷%/۱۵%/۲۵%/۳۰% قابل بازیابی)، پیشنهاد میشود در روی هم قرار دادن لوگو از سطح بالاتر استفاده کنید.
- محتوای رمزگذاری:متن، URL، vCard، Wi‑Fi و غیره، پیشنهاد میشود از استانداردهای مربوطه URI/فرمت داده پیروی کنید (مانند
WIFI:T:WPA;S:SSID;P:PASS;;). - چاپ و نمایش:اطمینان از مقایسه پیشزمینه/پسزمینه و اندازه منطقه خاموش؛ از پرت ازدحام بیش از حد، اندازه بسیار کوچک و بافتهای متراکم جلوگیری کنید.
- دسترسی پذیری:در موقعیتهای کلیدی پیشنهاد میشود متن/پیوند پشتیبان ارائه دهید و از قرار دادن کد QR به عنوان تنها ورودی خودداری کنید.
تولید کد QR با زبان برنامه نویسی
در زیر نمونههای ساده زبانهای رایج ارائه شده است که برای ورود به موضوع و استفاده از پایه کد مناسب است:
// 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();
}
توجه: قابلیتهای استایل پشتیبانی شده توسط کتابخانههای مختلف بسیار متفاوت است. در صورت نیاز به استایلهای پیشرفته (نقطهای، گرادیان، استایل نقاط یابی، قاب بیرونی و غیره)، میتوانید در این ابزار PNG/SVG را تولید کرده و مستقیماً استفاده کنید.