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
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.
|
AsciiFont.h
- Committer:
- dkato
- Date:
- 2017-03-07
- Revision:
- 5:1eaa4942db53
- Parent:
- 4:8fb5219bbc09
File content as of revision 5:1eaa4942db53:
/**************************************************************************//** * @file AsciiFont.h * @brief AsciiFont API ******************************************************************************/ #ifndef ASCII_FONT_H #define ASCII_FONT_H #include "mbed.h" /** Draw the character of the ASCII code. * * Example * @code * #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 * } * @endcode */ class AsciiFont { public: /** Constructor: Initializes AsciiFont. * * @param p_buf Text field address * @param width Text field width * @param height Text field height * @param stride Buffer stride * @param colour Background color * @param byte_per_pixel Byte per pixel */ AsciiFont(uint8_t * p_buf, int width, int height, int stride, int byte_per_pixel, uint32_t const colour = 0); /** Erase text field * */ void Erase(); /** Erase text field * * @param colour Background color */ void Erase(uint32_t const colour); /** Erase text field * * @param colour Background color * @param x Erase start position of x coordinate * @param y Erase start position of y coordinate * @param width Erase field width * @param height Erase field height */ void Erase(uint32_t const colour, int x, int y, int width, int height); /** Draw a string * * @param str String * @param x Drawing start position of x coordinate * @param y Drawing start position of y coordinate * @param color Font color * @param font_size Font size (>=1) * @param max_char_num The maximum number of characters * @return The drawn number of characters */ int DrawStr(const char * str, int x, int y, uint32_t const colour, int font_size = 1, uint16_t const max_char_num = 0xffff); /** Draw a character * * @param x Drawing start position of x coordinate * @param y Drawing start position of y coordinate * @param color Font color * @param font_size Font size (>=1) * @return true if successfull */ bool DrawChar(char c, int x, int y, uint32_t const colour, int font_size = 1); /** The pixel width of a character. (font_size=1) * */ static const int CHAR_PIX_WIDTH = 6; /** The pixel height of a character. (font_size=1) * */ static const int CHAR_PIX_HEIGHT = 8; private: uint8_t * p_text_field; int max_width; int max_height; int buf_stride; int pixel_num; uint32_t background_colour; }; #endif