مولد QR Code بلغة Swift: مكتبة EFQRCode لنظامي iOS و macOS

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مولد QR Code بلغة Swift (iOS/macOS): مكتبة EFQRCode



أصبحت رموز QR جزءًا لا يتجزأ من التطبيقات الحديثة - من المصادقة إلى نقل الروابط وجهات الاتصال. إذا كنت تطور تطبيقات لنظام iOS أو macOS باستخدام Swift، فلست بحاجة لكتابة خوارزميات ترميز معقدة من الصفر. توفر المكتبة الجاهزة EFQRCode واجهة برمجة تطبيقات (API) ملائمة لإنشاء وقراءة وتخصيص رموز QR. في هذه المقالة، سنستعرض إمكانياتها وطريقة التثبيت وأمثلة الاستخدام.



ما هي EFQRCode؟

EFQRCode هي مكتبة مفتوحة المصدر مكتوبة بلغة Swift. تدعم iOS (بدءًا من الإصدار 9.0) و macOS (10.11+). الإمكانيات الرئيسية:

  • توليد رموز QR من النصوص وعناوين URL وجهات اتصال vCard والنصوص.
  • تخصيص اللون والخلفية والحجم ومستوى تصحيح الأخطاء.
  • إضافة علامات مائية (شعارات، صور) في وسط رمز QR.
  • إنشاء رموز QR متحركة (GIF).
  • فك تشفير رموز QR من الصور.

تستخدم المكتبة CIFilter المدمج من Core Image، ولكنها تضيف العديد من المغلفات والتخصيصات المريحة.



التثبيت عبر Swift Package Manager

أضف حزمة EFQRCode إلى مشروع Xcode الخاص بك:

// في Xcode: File → Add Packages...// أضف رابط المستودع:https://github.com/EFPrefix/EFQRCode.git// اختر الإصدار (يوصى بـ "Up to Next Major")

أو أضف التبعية يدويًا في ملف Package.swift:

dependencies: [    .package(url: "https://github.com/EFPrefix/EFQRCode.git", from: "6.0.0")]


مثال أساسي لتوليد QR Code

أبسط طريقة لإنشاء رمز QR من نص:

import EFQRCode

// إنشاء QR Code من نصif let image = EFQRCode.generate( content: "https://pythonlib.ru", size: EFIntSize(width: 300, height: 300)) { // استخدم image (CGImage) للعرض // على سبيل المثال، في UIImageView على iOS: let uiImage = UIImage(cgImage: image) imageView.image = uiImage}

النتيجة - رمز QR قياسي بالأسود والأبيض بحجم 300x300 بكسل.



تخصيص اللون والخلفية

يمكنك تعيين لون عشوائي للمقدمة والخلفية:

import EFQRCode

let qrImage = EFQRCode.generate( content: "Hello, Swift!", size: EFIntSize(width: 400, height: 400), backgroundColor: UIColor.yellow.cgColor, foregroundColor: UIColor.blue.cgColor, inputCorrectionLevel: .h // أقصى تصحيح للأخطاء)

يقبل المعامل inputCorrectionLevel القيم .l (7%)، .m (15%)، .q (25%)، .h (30%). كلما زاد المستوى، زادت البيانات التي يمكن استعادتها في حالة التلف.



إضافة شعار (علامة مائية)

لوضع شعار في وسط رمز QR، استخدم الطريقة generateWithWatermark:

import EFQRCode

let watermarkImage = UIImage(named: "logo")?.cgImagelet qrWithLogo = EFQRCode.generateWithWatermark( content: "https://pythonlib.ru", size: EFIntSize(width: 500, height: 500), watermark: watermarkImage, watermarkMode: .center)

هام: يجب ألا يشغل الشعار أكثر من 30% من المساحة، وإلا فقد لا يتم قراءة الرمز.



إنشاء رمز QR متحرك (GIF)

تدعم EFQRCode توليد رموز QR متحركة. على سبيل المثال، يمكن إنشاء GIF بألوان متغيرة:

import EFQRCode

let qrCodeGIF = EFQRCode.generateGIF( content: "Animated QR", size: EFIntSize(width: 200, height: 200), data: [someData] // مصفوفة الإطارات)

للرسوم المتحركة البسيطة، يمكن استخدام ألوان جاهزة. لمزيد من التفاصيل - راجع وثائق المكتبة.



فك تشفير QR Code من صورة

لقراءة رمز QR من صورة أو لقطة شاشة:

import                    

توصيات