
MCU-renderer是MCUS的C語言圖形庫,專注於在單色和顏色LCD顯示器上渲染非閃光,反相反的文本,並且資源較低。
要開始使用MCU-Renderer,請包括適當的標頭文件。
為了初始化庫,請調用相應的mr_xxx_init()函數。顯示最初是關閉的,使您可以在第一個屏幕更新之前繪製。要打開顯示器,請致電mr_xxx_set_display() 。在顏色LCD屏幕上,您還需要使用mr_xxx_set_sleep()禁用睡眠模式。
接下來,設置字體。如準備字體部分所述,您可以使用字體文件夾中的字體或準備自己的字體。
之後,設置一個由非重疊矩形組成的屏幕佈局。更新屏幕時,這將避免任何閃爍。
要繪製一個填充的矩形,請致電mr_set_fill_color()以將填充顏色和mr_draw_rectangle()設置為實際繪圖。您可以使用mr_get_color宏將Web顏色(例如FF2020)轉換為MCU-Renderer顏色。
要在用戶提供的uint8_t Framebuffer中繪製位圖,請致電mr_set_stroke_color()設置前景顏色, mr_set_fill_color()設置背景顏色, mr_draw_bitmap()繪製位圖。
要在用戶提供的RGB565 Framebuffer中繪製圖像,請致電mr_draw_image() 。
要繪製文本矩形,請致電mr_set_font()設置字體, mr_set_fill_color()設置背景顏色, mr_set_stroke_color()設置文本顏色, mr_draw_text() , mr_draw_text_utf8() , mr_draw_text_utf16()和mr_draw_traw_text_text_text_text_text_text_text_utf16(restf16) 分別。 offset參數指定圖形矩形內文本的左上角:要水平中心文本,請使用mr_get_text_width() , mr_get_text_utf8_width()和mr_get_text_utf16_width()函數;要垂直中心文本,請使用mr_get_cap_height() (uppercase a), mr_get_ascent() (基線的頂部到基線),mr_get_descent mr_get_descent() (線的高度)(線的高度)(線的高度)( mr_get_line_height() (線的高度),獲取當前字體的指標。確保在檢索任何指標之前設置字體。
矩形邊界可能不會超過顯示大小。文本圖函數的offset參數不限。
單色顯示器和SDL需要屏幕刷新。要刷新屏幕,請在完成繪圖後調用mr_xxx_refresh_screen() 。
請參閱示例文件夾。
(ASCII字符0x20-0x7e)
(字節中的尺寸)
| 字體 | Roboto 12 Px | Roboto 24 Px | Roboto 48 Px | Roboto 72 Px |
|---|---|---|---|---|
| adafruit_gfx/tft_espi(1 bpp) | 3832 | 14589 | 56677 | 129389 |
| U8G2(1 BPP) | 1508 | 3039 | 6632 | N/A。 |
| 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 |
| McUfont(4 BPP) | 3125 | 6296 | 12969 | 20045 |
| TFT_ESPI(VLW) | 7642 | 19387 | 65833 | 143333 |
為了將您的字體轉換為MCU-Renderer格式,請使用fontconv工具(在發行版中以二進制形式提供),它使您可以將.bdf和.pcf bitmap字體以及.ttf ,.ttc, .ttc , .otf ,.otc,.otc, .otc和.woff vector vector fontss轉換。
在數字版式中,通常將72點定義為96個像素。為了將矢量字體柵格化為給定的像素大小,請通過乘以因子4/3將像素大小轉換為點大小。並非所有字體都遵循此規則,因此您可能需要調整此因素。
fontconv計算蓋高度(大寫字母a的高度)為上升高度(基線頂部到基線的頂部)和下降高度(基線到線的底部)之間的差異。在某些字體上,此計算不准確,因此您可以覆蓋蓋高度以達到正確的結果。您還可以覆蓋上升高度和下降高度。