
MCU-Renderer هي مكتبة رسومات باللغة C لـ MCUS ، تركز على تقديم نص غير مقلوب ومضاد للمكتبة مع استخدام الموارد المنخفض على كل من شاشات الشاشة أحادية اللون وشاشات LCD.
للبدء في استخدام MCU-Renderer ، قم بتضمين ملف الرأس المناسب.
من أجل تهيئة المكتبة ، اتصل بوظيفة mr_xxx_init() المقابلة. يتم إيقاف تشغيل الشاشة في البداية ، مما يسمح لك بالرسم قبل تحديث الشاشة الأول. لتشغيل الشاشة ، اتصل على mr_xxx_set_display() . على شاشات LCD الملونة ، تحتاج أيضًا إلى تعطيل وضع النوم باستخدام mr_xxx_set_sleep() .
بعد ذلك ، قم بإعداد الخطوط. يمكنك استخدام الخطوط المتوفرة في مجلد Fonts ، أو إعداد خاصتك ، كما يوضح قسم الخطوط إعداد.
بعد ذلك ، قم بإعداد تصميم شاشة يتكون من مستطيلات غير متداخلة. هذا سوف يتجنب أي وميض عند تحديث الشاشة.
لرسم مستطيل مملوء ، اتصل بـ mr_set_fill_color() لتعيين لون التعبئة و mr_draw_rectangle() للرسم الفعلي. يمكنك تحويل ألوان الويب (على سبيل المثال #FF2020) إلى ألوان MCU-Renderer باستخدام mr_get_color MACRO.
لرسم صورة نقطية في FrameBuffer uint8_t المقدمة من المستخدم ، اتصل بـ mr_set_stroke_color() لتعيين اللون الأمامي ، mr_set_fill_color() لتعيين لون الخلفية و mr_draw_bitmap() لرسم البيع المعتاد.
لرسم صورة في Framebuffer RGB565 المقدمة من المستخدم ، اتصل بـ mr_draw_image() .
لرسم مستطيل نص ، اتصل بـ mr_set_font() لتعيين الخط ، mr_draw_text() mr_set_fill_color() لتعيين لون الخلفية ، mr_set_stroke_color() mr_draw_text_utf8() ) لتعيين لون النص ، و mr_draw_text_utf16() على التوالى. تحدد المعلمة offset الزاوية اليسرى العلوية للنص داخل مستطيل الرسم: إلى النص المركزي أفقياً ، استخدم mr_get_text_width() ، mr_get_text_utf8_width() و mr_get_text_utf16_width() ؛ إلى مركز النص رأسياً ، احصل على مقاييس الخط الحالي مع mr_get_cap_height() (ارتفاع الكبير A) ، mr_get_ascent() (أعلى الخط إلى خط الأساس) ، mr_get_descent() (الأساس إلى أسفل السطر) و mr_get_line_height() (ارتفاع السطر). تأكد من تعيين الخط قبل استرداد أي مقاييس.
قد لا تتجاوز حدود المستطيل حجم العرض. المعلمة offset لوظائف رسم النص غير محدودة.
شاشات أحادية اللون وتتطلب SDL تحديث الشاشة. لتحديث الشاشة ، اتصل على mr_xxx_refresh_screen() بعد الانتهاء من الرسم.
انظر مجلد الأمثلة.
(أحرف ASCII 0x20-0X7E)
(أحجام في بايت)
| الخط | روبوتو 12 بكسل | روبوتو 24 بكسل | روبوتو 48 بكسل | روبوتو 72 بكسل |
|---|---|---|---|---|
| adafruit_gfx/tft_espi (1 bpp) | 3832 | 14589 | 56677 | 129389 |
| U8G2 (1 BPP) | 1508 | 3039 | 6632 | ن/أ |
| MCU-Renderer 1 BPP | 1473 | 2891 | 5902 | 9511 |
| MCU-Renderer 2 BPP | 2052 | 4162 | 8743 | 13969 |
| MCU-Renderer 3 BPP | 2695 | 5677 | 12128 | 18701 |
| MCU-Renderer 4 BPP | 3328 | 7329 | 15533 | 23676 |
| ماكوفونت (4 BPP) | 3125 | 6296 | 12969 | 20045 |
| TFT_ESPI (VLW) | 7642 | 19387 | 65833 | 143333 |
.otf أجل تحويل خطوطك إلى تنسيق MCU-Renderer .ttc استخدم أداة fontconv ( .otc .ttf شكل ثنائي ضمن الإصدارات .bdf .pcf مما يتيح لك تحويل خطوط المتجهات .woff
في الطباعة الرقمية ، عادة ما يتم تعريف 72 نقطة على أنها 96 بكسل. لإضفاء الطابع النافذ على خط المتجه إلى حجم بكسل معين ، قم بتحويل حجم البيكسل إلى حجم نقطة عن طريق الضرب على العامل 4/3. لا تتبع كل الخطوط هذه القاعدة ، لذلك قد تحتاج إلى تعديل هذا العامل.
يحسب fontconv ارتفاع الغطاء (ارتفاع الحرف الأكبر A) كفرق بين ارتفاع الصعود (أعلى الخط إلى خط الأساس) وارتفاع الهبوط (خط الأساس إلى أسفل الخط). في بعض الخطوط ، يكون هذا الحساب غير دقيق ، بحيث يمكنك تجاوز ارتفاع الغطاء لتحقيق النتيجة الصحيحة. يمكنك أيضًا تجاوز ارتفاع الصعود وارتفاع الهبوط.