يحدد هذا المستودع طريقة لإنشاء خطوط ونشرها للاستخدام مع برامج تشغيل عرض micropython. تقوم شركة الكمبيوتر الشخصي بإعداد ملفات الخطوط القياسية في الصناعة كصورة نقطية في شكل Python sourcecode. تتيح وحدة micropython عرض هذه الملفات على الأجهزة ذات برامج تشغيل الأجهزة المناسبة. وتشمل هذه شاشات OLED باستخدام شريحة SSD1306 وبرنامج تشغيل الجهاز الرسمي. تتوفر برامج تشغيل متوافقة لمجموعة متنوعة من تقنيات العرض كجزء من مستودع Nano-Gui.
تحتوي منصات micropython عمومًا على ذاكرة الوصول العشوائي المحدودة ، ولكن تخزين أكثر وفرة في شكل ذاكرة فلاش. تميل ملفات الخط إلى أن تكون كبيرة نسبيًا. تتضمن التقنية التقليدية لتقديم السلاسل إلى الجهاز تحميل الخط بأكمله في ذاكرة الوصول العشوائي. هذا سريع ولكن رام مكثف. إن بديل تخزين الخط كملف وصول عشوائي وتحميل الحروف الرسومية الفردية في ذاكرة الوصول العشوائي عند الطلب بطيئة للغاية بالنسبة للأداء المعقول على معظم أجهزة العرض.
هذا البديل ينفذ خطًا كملف مصدر Python ، مع إعلان البيانات ككائنات bytes . قد يتم تجميد مثل هذا الملف كـ Bytecode: وهذا يتضمن إنشاء البرامج الثابتة من المصدر مع ملف Python في دليل معين. عند الاستيراد ، يتم استخدام القليل جدًا من ذاكرة الوصول العشوائي ، ومع ذلك يمكن الوصول إلى البيانات بسرعة. لاحظ أن استخدام رمز Bytecode المجمد اختياري تمامًا: يمكن استيراد ملفات الخطوط بالطريقة العادية إذا لم يكن استخدام ذاكرة الوصول العشوائي مشكلة.
الملف الناتج قابل للاستخدام مع نوعين من برامج تشغيل جهاز العرض:
framebuffer الرسمية.هذا يضم أربعة مكونات ، روابط إلى المستندات أدناه:
Writer . تتم كتابة أداة سطر الأوامر هذه في Python 3 وتشغيل على جهاز كمبيوتر. لتحويل خط قابل للتطوير إلى Python ، تأخذ الأداة المساعدة إدخال ملف خط في نموذج ttf أو otf مع ارتفاع في البكسل ويخرج ملف مصدر Python يحتوي على الخط كصورة نقطية. يتم دعم عرض الملعب الثابت والمتغير. التصميم له الأهداف التالية:
يتم تحقيق الأول من خلال توفير وسيطات محددة للأجهزة إلى الأداة. تحدد هذه الخرائط الأفقية أو الرأسية وترتيب البت لبيانات الخط.
يتم تحقيق الثاني باستخدام FreeType وروابط Freetype Python. تم توثيق استخدامه هنا. هذا أيضًا يوضح قياسات استخدام ذاكرة الوصول العشوائي عند استيراد الخطوط المخزنة برمز BYTECODE المجمد.
يعمل تحويل ملفات ttf أو otf القابلة للتطوير برمجيًا بشكل أفضل للخطوط الكبيرة. بالنسبة للخطوط الصغيرة ، من الأفضل استخدام ملفات الخطوط المصممة المصممة يدويًا. يتم دعمها الآن: يمكن تحويل ملفات خطوط bdf أو pcf إلى مصدر Python بنفس تنسيق الملفات التي تنشأ من الخطوط القابلة للتطوير. انظر أيضًا micropyezfonts التي تتضمن خطوط صغيرة متوافقة (في examples/fonts ).
Kerning غير مدعوم. الخطوط هي بت واحدة لكل بكسل. يتم دعم شاشات الألوان بواسطة فئة CWriter التي تضيف معلومات اللون في مرحلة التقديم. هذا يفترض أن جميع وحدات البكسل ذات الطابع ملون بشكل متماثل.
بشكل افتراضي ، تنتج الأداة المساعدة font_to_py.py مجموعة حرف ASCII من chr(32) إلى chr(126) شاملة. تتيح خيارات سطر الأوامر تعيين الأحرف المراد تعديلها لتشمل أحرف Unicode التعسفية. قد يتم تحديد مجموعات بديلة مثل اللغات غير الإنجليزية. يتم الآن توفير الدعم الفعال لمجموعات الأحرف المتفرقة.
يتم استيراد ملف الخط بالطريقة المعتادة على سبيل المثال import font14 . تحتوي ملفات خط Python على الوظائف التالية. قيم الإرجاع هذه المحددة بواسطة الوسائط التي تم توفيرها إلى font_to_py.py :
height يعود الارتفاع في وحدات البكسل.
max_width يعيد الحد الأقصى لعرض الحروف الرسومية بالبكسل.
إزاحة baseline من أعلى الحروف الرسومية إلى الأساس.
يعود hmap True إذا تم تعيين الخط أفقياً.
reverse الإرجاع True إذا تم تحديد انعكاس بت.
عودة monospaced True إذا تم تحديد عرض monospaced.
min_ch إرجاع القيمة الترتيبية لأدنى حرف في الملف.
يقوم max_ch بإرجاع القيمة الترتيبية لأعلى حرف في الملف.
يتم إرجاع الحروف الرسومية مع وظيفة get_ch . حجتها هي حرف Unicode ويعيد القيم التالية:
memoryview الذي يحتوي على بايت Glyph. تتيح الأداة المساعدة font_to_py.py تحديد الأدوية الافتراضية (عادة ? ). إذا تم استدعاؤه مع حرف غير محدد ، فسيتم إرجاع هذه الرسول الرمزية.
وظائف min_ch و max_ch ذات صلة بشكل أساسي بمجموعات الأحرف المتجاورة.
يتم إصدار جميع الكود تحت رخصة معهد ماساتشوستس للتكنولوجيا.