مولّد رموز QR الاحترافي
مولّد احترافي لرموز QR يعمل عبر الإنترنت ويُنشئ الرموز محليًا في متصفحك، ويدعم أنواع محتوى متعددة تشمل الروابط، النصوص، Wi-Fi، vCard، الرسائل النصية (SMS) والبريد الإلكتروني. يوفر خيارات غنية لتخصيص الأنماط بما في ذلك الأشكال، أنماط نقاط التموضع، الألوان المتدرجة، طبقة الشعار، الإطارات والخطوط. يدعم إخراج الصيغ PNG وSVG مع وظائف تنزيل ومشاركة بنقرة واحدة. لا يتم رفع أي بيانات، وهو مجاني تمامًا للأبد وبدون علامات مائية. جميع العمليات تتم محليًا في متصفحك لضمان الخصوصية والأمان.
مولّد رموز QR
الصور التي يتم تنزيلها خالية من العلامات المائية، ويمكن استخدام الأداة مجانًا وبشكل دائم.
إرشادات الاستخدام
- اختر النوع (رابط، نص، Wi-Fi، vCard، SMS، بريد إلكتروني)، ثم أدخل أو الصق المحتوى.
- عدّل الحجم، الهامش، الألوان، مستوى تصحيح الأخطاء، بالإضافة إلى الأنماط (الأشكال/نقاط التموضع)، التدرجات، الشعارات، الإطارات، وغيرها.
- اختر صيغة PNG أو SVG.
- سيتم توليد رمز QR تلقائيًا؛ يمكنك 'تنزيله' أو 'نسخه' عند جاهزيته.
- عند استخدام شعار أو أنماط معقدة، يُنصح برفع مستوى تصحيح الأخطاء إلى H وترك مساحة كافية للهدوء (هوامش فارغة).
- عند الاستخدام للطباعة/العرض، تأكد من وجود تباين عالٍ بين المقدمة والخلفية، وتجنب الأحجام الصغيرة جدًا والتشوهات المفرطة.
الميزات
- يتم الإنشاء بالكامل على الواجهة الأمامية (بدون رفع)
- يدعم إخراج PNG و SVG
- أنماط قابلة للتخصيص: الشكل، نقاط التموضع، الزوايا الدائرية، الفجوات
- تدرجات لونية (ألوان متعددة، اتجاهات متعددة)
- تراكب الشعار (خيار لزيادة مستوى تصحيح الخطأ تلقائيًا)
- إطارات وحواف (بنمط البطاقة المستديرة)
- المشاركة والحافظة (روابط/صور)
- دعم متعدد اللغات والسيمات
ما هي أنماط الكاشف (Finder Patterns)؟
المربعات الثلاثة الكبيرة في زوايا رمز QR الأربع تُسمى أنماط الكاشف، حيث تساعد الكاميرا على تحديد موقع وزاوية رمز QR بسرعة لتصحيح الانحراف وفك التشفير. عادةً ما يكون لها هيكل وحدة 7×7 (أسود خارجي، أبيض داخلي، وأسود مركزي) بألوان سوداء وبيضاء متناوبة.
- الوظيفة: تحديد الموقع السريع، ومكافحة الدوران، ومكافحة التشوه المنظوري.
- الأنماط: تدعم هذه الأداة عرض أنماط Finder في المربعات، والزوايا المستديرة، و"النمط النقطي" (اختر من Style → Finder).
من اخترع رمز QR؟
تم اختراع رمز QR في عام 1994 بواسطة Masahiro Hara، وهو مهندس في شركة Denso Wave باليابان. اختصار QR يعني "Quick Response" (استجابة سريعة).
- الدافع للاختراع: تحسين كفاءة تحديد الهوية في خط إنتاج قطع غيار السيارات، والتغلب على قيود السعة وسرعة القراءة الخاصة بالرموز أحادية البعد.
- إلهام التصميم: ألهمت حجارة لعبة Go السوداء والبيضاء والأنماط المصفوفية التصميم القوي للغاية لـ "الوحدات المعيارية + الرسومات التموضعية".
- لماذا لا يلزم دفع رسوم براءة الاختراع: تحتفظ Denso Wave بالعلامة التجارية وبعض براءات الاختراع، لكنها تسمح صراحةً بالاستخدام المجاني لتعزيز انتشار النظام البيئي (يدعم الاستخدام التجاري دون رسوم ترخيص).
المواصفات القياسية واقتراحات الاستخدام
- المعيار الدولي: ISO/IEC 18004 (مواصفة الرمز ثنائي البعد لـ QR Code)، والذي يحدد الإصدارات، والأقنعة، وتصحيح الأخطاء، وهياكل الرسوم البيانية، وما إلى ذلك.
- مستوى تصحيح الخطأ: أربعة مستويات: L/M/Q/H (قابل للاستعادة بنسبة تقريبية 7%/15%/25%/30%). يُنصح باستخدام مستوى أعلى عند وضع شعار فوق الرمز.
- المحتوى المشفر: نص، 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 مباشرةً باستخدام هذه الأداة واستخدامها.