Draw the character of the ASCII code.

Dependents:   mbed-os_Watson-IoT_ZXing_sample mbed-os_Watson-IoT_ZXing_sample MovPlayer GR-PEACH_HVC-P2_sample_client ... more

Fork of AsciiFont by Daiki Kato

AsciiFont

This is a library to draw the ASCII font characters.

Example

#include "mbed.h"
#include "AsciiFont.h"

#define WIDTH           (12)
#define HEIGHT          (16)
#define BYTE_PER_PIXEL  (1u)
#define STRIDE          (((WIDTH * BYTE_PER_PIXEL) + 7u) & ~7u) //multiple of 8

uint8_t text_field[STRIDE * HEIGHT];

//for debug
void print_text_field() {
    int idx = 0;

    for (int i = 0; i < HEIGHT; i++) {
        for (int j = 0; j < STRIDE; j++) {
            printf("%02x", text_field[idx++]);
        }
        printf("\r\n");
    }
    printf("\r\n");
}

int main() {
    AsciiFont ascii_font(text_field, WIDTH, HEIGHT, STRIDE, BYTE_PER_PIXEL);

    ascii_font.Erase(0xcc);
    ascii_font.DrawStr("AB", 0, 0, 0x11, 1);
    ascii_font.DrawChar('C', AsciiFont::CHAR_PIX_WIDTH,
                        AsciiFont::CHAR_PIX_HEIGHT, 0x22, 1);
    print_text_field(); //debug print

    ascii_font.Erase();
    ascii_font.DrawStr("D", 0, 0, 0xef, 2);
    print_text_field(); //debug print

    ascii_font.Erase(0x11, 6, 0, 6, 8);
    print_text_field(); //debug print
}


API

Import library

Public Member Functions

AsciiFont (uint8_t *p_buf, int width, int height, int stride, int byte_per_pixel, uint32_t const colour=0)
Constructor: Initializes AsciiFont .
void Erase ()
Erase text field.
void Erase (uint32_t const colour)
Erase text field.
void Erase (uint32_t const colour, int x, int y, int width, int height)
Erase text field.
int DrawStr (char *str, int x, int y, uint32_t const colour, int font_size=1, uint16_t const max_char_num=0xffff)
Draw a string.
bool DrawChar (char c, int x, int y, uint32_t const colour, int font_size=1)
Draw a character.

Static Public Attributes

static const int CHAR_PIX_WIDTH = 6
The pixel width of a character.
static const int CHAR_PIX_HEIGHT = 8
The pixel height of a character.

Files at this revision

API Documentation at this revision

Comitter:
dkato
Date:
Mon Oct 03 06:50:04 2016 +0000
Parent:
2:d0bc8c2974e0
Child:
4:8fb5219bbc09
Commit message:
Change the API.

Changed in this revision

AsciiFont.cpp Show annotated file Show diff for this revision Revisions of this file
AsciiFont.h Show annotated file Show diff for this revision Revisions of this file
--- a/AsciiFont.cpp	Mon Oct 03 06:33:40 2016 +0000
+++ b/AsciiFont.cpp	Mon Oct 03 06:50:04 2016 +0000
@@ -31,7 +31,7 @@
     }
 }
 
-int AsciiFont::DrawString(char * str, int x, int y, uint32_t const colour, int font_size, uint16_t const max_char_num) {
+int AsciiFont::DrawStr(char * str, int x, int y, uint32_t const colour, int font_size, uint16_t const max_char_num) {
     int char_num = 0;
 
     if ((str == NULL) || (font_size <= 0)) {
--- a/AsciiFont.h	Mon Oct 03 06:33:40 2016 +0000
+++ b/AsciiFont.h	Mon Oct 03 06:50:04 2016 +0000
@@ -39,13 +39,13 @@
  *     AsciiFont ascii_font(text_field, WIDTH, HEIGHT, STRIDE, BYTE_PER_PIXEL);
  * 
  *     ascii_font.Erase(0xcc);
- *     ascii_font.DrawString("AB", 0, 0, 0x11, 1);
+ *     ascii_font.DrawStr("AB", 0, 0, 0x11, 1);
  *     ascii_font.DrawChar('C', AsciiFont::CHAR_PIX_WIDTH,
  *                         AsciiFont::CHAR_PIX_HEIGHT, 0x22, 1);
  *     print_text_field(); //debug print
  * 
  *     ascii_font.Erase();
- *     ascii_font.DrawString("D", 0, 0, 0xef, 2);
+ *     ascii_font.DrawStr("D", 0, 0, 0xef, 2);
  *     print_text_field(); //debug print
  * 
  *     ascii_font.Erase(0x11, 6, 0, 6, 8);
@@ -99,7 +99,7 @@
      * @param max_char_num The maximum number of characters
      * @return The drawn number of characters
      */
-    int DrawString(char * str, int x, int y, uint32_t const colour, int font_size = 1, uint16_t const max_char_num = 0xffff);
+    int DrawStr(char * str, int x, int y, uint32_t const colour, int font_size = 1, uint16_t const max_char_num = 0xffff);
 
     /** Draw a character
      *