Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add drawXBitmap() function and example
Example is in Generic folder, draw the Espressif logo on the screen.
- Loading branch information
Showing
7 changed files
with
168 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Example sketch to demonstrate the drawing of X BitMap (XBM) | ||
// format image onto the display. | ||
|
||
// Information on the X BitMap (XBM) format can be found here: | ||
// https://en.wikipedia.org/wiki/X_BitMap | ||
|
||
// This example is part of the TFT_eSPI library: | ||
// https://github.com/Bodmer/TFT_eSPI | ||
|
||
// Created by Bodmer 23/14/18 | ||
|
||
#include "xbm.h" // Sketch tab header for xbm images | ||
|
||
#include <TFT_eSPI.h> // Hardware-specific library | ||
|
||
TFT_eSPI tft = TFT_eSPI(); // Invoke library | ||
|
||
|
||
void setup() | ||
{ | ||
tft.begin(); // Initialise the display | ||
tft.fillScreen(TFT_BLACK); // Black screen fill | ||
} | ||
|
||
void loop() | ||
{ | ||
|
||
// Example 1 | ||
// ========= | ||
// Random x and y coordinates | ||
int x = random(tft.width() - logoWidth); | ||
int y = random(tft.height() - logoHeight); | ||
|
||
// Draw bitmap with top left corner at x,y with foreground only color | ||
// Bits set to 1 plot as the defined color, bits set to 0 are not plotted | ||
// x y xbm xbm width xbm height color | ||
tft.drawXBitmap(x, y, logo, logoWidth, logoHeight, TFT_WHITE); | ||
|
||
delay(500); | ||
|
||
// Erase old one by drawing over with background colour | ||
tft.drawXBitmap(x, y, logo, logoWidth, logoHeight, TFT_BLACK); | ||
|
||
|
||
// Example 2 | ||
// ========= | ||
// New random x and y coordinates | ||
x = random(tft.width() - logoWidth); | ||
y = random(tft.height() - logoHeight); | ||
|
||
// Draw bitmap with top left corner at x,y with foreground and background colors | ||
// Bits set to 1 plot as the defined fg color, bits set to 0 are plotted as bg color | ||
// x y xbm xbm width xbm height fg color bg color | ||
tft.drawXBitmap(x, y, logo, logoWidth, logoHeight, TFT_WHITE, TFT_RED); | ||
|
||
delay(500); | ||
|
||
// Erase old one by drawing over with background colour | ||
tft.drawXBitmap(x, y, logo, logoWidth, logoHeight, TFT_BLACK, TFT_BLACK); | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
// Images can be converted to XBM format by using the online converter here: | ||
// https://www.online-utility.org/image/convert/to/XBM | ||
|
||
// The output must be pasted in a header file, renamed and adjusted to appear | ||
// as as a const unsigned char array in PROGMEM (FLASH program memory). | ||
|
||
// The xbm format adds padding to pixel rows so they are a whole number of bytes | ||
// In this example 50 pixel width means 56 bits = 7 bytes | ||
// the 50 height then means array uses 50 x 7 = 350 bytes of FLASH | ||
// The library ignores the padding bits when drawing the image on the display. | ||
|
||
// Example of the correct format is shown below | ||
|
||
#include <pgmspace.h> // PROGMEM support header | ||
|
||
// Espressif logo 50 x 50 pixel array in XBM format | ||
#define logoWidth 50 // logo width | ||
#define logoHeight 50 // logo height | ||
|
||
// Image is stored in this array | ||
PROGMEM const unsigned char logo[] = { | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, | ||
0x00, 0x00, 0x00, 0x07, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x82, 0x7F, 0xF0, | ||
0x1F, 0x00, 0x00, 0x00, 0xC6, 0xFF, 0xC3, 0x3F, 0x00, 0x00, 0x00, 0xE7, | ||
0xFF, 0x8F, 0x7F, 0x00, 0x00, 0x80, 0xE3, 0xFF, 0x1F, 0xFE, 0x00, 0x00, | ||
0x80, 0xE1, 0xFF, 0x7F, 0xFC, 0x01, 0x00, 0xC0, 0x00, 0xFF, 0xFF, 0xF8, | ||
0x03, 0x00, 0xE0, 0x00, 0xE0, 0xFF, 0xF1, 0x03, 0x00, 0x60, 0xF0, 0x81, | ||
0xFF, 0xE3, 0x07, 0x00, 0x60, 0xFC, 0x1F, 0xFE, 0xC7, 0x07, 0x00, 0x30, | ||
0xFE, 0x7F, 0xF8, 0x8F, 0x0F, 0x00, 0x30, 0xFF, 0xFF, 0xF1, 0x9F, 0x0F, | ||
0x00, 0xB0, 0xFF, 0xFF, 0xE3, 0x3F, 0x0F, 0x00, 0xB0, 0xFF, 0xFF, 0xC7, | ||
0x3F, 0x1E, 0x00, 0xB8, 0xFF, 0xFF, 0x8F, 0x7F, 0x1E, 0x00, 0x98, 0x1F, | ||
0xFC, 0x3F, 0xFF, 0x1C, 0x00, 0xB8, 0x3F, 0xE0, 0x3F, 0xFE, 0x1C, 0x00, | ||
0x98, 0xFF, 0xC3, 0x7F, 0xFE, 0x19, 0x00, 0x98, 0xFF, 0x0F, 0xFF, 0xFC, | ||
0x19, 0x00, 0x38, 0xFF, 0x3F, 0xFF, 0xFC, 0x01, 0x00, 0x30, 0xFE, 0x7F, | ||
0xFE, 0xF9, 0x03, 0x00, 0x30, 0xFC, 0xFF, 0xFC, 0xF9, 0x03, 0x00, 0x30, | ||
0xF8, 0xFF, 0xF8, 0xF3, 0x03, 0x00, 0x30, 0x00, 0xFF, 0xF9, 0xF3, 0x03, | ||
0x00, 0x70, 0x00, 0xFC, 0xF9, 0xF3, 0x07, 0x00, 0x60, 0x00, 0xF8, 0xF3, | ||
0xF3, 0x07, 0x00, 0xE0, 0xF8, 0xF8, 0xF3, 0xF7, 0x03, 0x00, 0xC0, 0xF8, | ||
0xF1, 0xF3, 0xE3, 0x03, 0x00, 0xC0, 0xFD, 0xF1, 0xF3, 0xF7, 0x01, 0x00, | ||
0x80, 0xFD, 0xF1, 0xF3, 0xE7, 0x00, 0x00, 0x00, 0xFF, 0xF1, 0xF3, 0x07, | ||
0x00, 0x00, 0x00, 0xFF, 0xF8, 0xF3, 0x07, 0x00, 0x00, 0x00, 0x7E, 0xF8, | ||
0xF3, 0x83, 0x03, 0x00, 0x00, 0x3C, 0xF8, 0xF3, 0xC3, 0x01, 0x00, 0x00, | ||
0x70, 0xF8, 0xF9, 0xE3, 0x00, 0x00, 0x00, 0xE0, 0xE1, 0x41, 0x78, 0x00, | ||
0x00, 0x00, 0xC0, 0x0F, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFD, | ||
0x07, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, | ||
0x80, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
0x00, 0x00, }; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters