Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Bicycl_Computer_NUCLEO-F411RE Bicycl_Computer_NUCLEO-L476RG
Fork of UniGraphic by
Revision 36:0ced7cf0ec8c, committed 2017-08-04
- Comitter:
- trevieze
- Date:
- Fri Aug 04 19:47:21 2017 +0000
- Parent:
- 34:7eea44b19734
- Commit message:
- Added Gimp Graphic Display Routine for Compass
Changed in this revision
| Graphics/GraphicsDisplay.cpp | Show annotated file Show diff for this revision Revisions of this file |
| Graphics/GraphicsDisplay.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Graphics/GraphicsDisplay.cpp Fri Apr 28 01:45:26 2017 +0000
+++ b/Graphics/GraphicsDisplay.cpp Fri Aug 04 19:47:21 2017 +0000
@@ -333,7 +333,7 @@
}
void GraphicsDisplay::Bitmap(int x, int y, int w, int h,unsigned char *bitmap)
{
- int j;
+ int i,j;
unsigned char padd;
unsigned short *bitmap_ptr = (unsigned short *)bitmap;
@@ -349,12 +349,34 @@
window(x, y, w-cropX, h-cropY);
bitmap_ptr += ((h - 1)* (w + padd)); // begin of last line in array (first line of image)(standard bmp scan direction is left->right bottom->top)
for (j = 0; j < h-cropY; j++) { //Lines
- window_pushpixelbuf(bitmap_ptr, w-cropX);
- bitmap_ptr -= w+padd;
+ for (i = 0; i < w-cropX; i++) {
+ window_pushpixelbuf(bitmap_ptr, w-cropX);
+ //bitmap_ptr++;
+ bitmap_ptr -= w+padd;
+ }
+ bitmap_ptr -= 2*w;
+ bitmap_ptr -= padd;
}
if(auto_up) copy_to_lcd();
}
+//Draw XBitMap Files (*.xbm), exported from GIMP,
+//Usage: Export from GIMP to *.xbm, rename *.xbm to *.c and open in editor.
+//C Array can be directly used with this function
+void GraphicsDisplay::drawXBitmap(int16_t x, int16_t y,const uint8_t *bitmap, int16_t w, int16_t h,uint16_t color) {
+ int16_t i, j, byteWidth = (w + 7) >> 3;
+ window(x, y, w, h);
+
+ for (j=0; j<h; j++) {
+ for (i=0; i<w; i++ ) {
+ if (*(bitmap + j * byteWidth + (i >> 3)) & (1 << (i & 7))) {
+ pixel(x+i, y+j, color);
+ }
+ }
+ }
+}
+
+
// local filesystem is not implemented in kinetis board , but you can add a SD card
// fixme this whole functions needs testing and speedup
int GraphicsDisplay::BMP_16(int x, int y, const char *Name_BMP)
--- a/Graphics/GraphicsDisplay.h Fri Apr 28 01:45:26 2017 +0000
+++ b/Graphics/GraphicsDisplay.h Fri Aug 04 19:47:21 2017 +0000
@@ -256,8 +256,8 @@
* use Gimp to create / load , save as BMP, option 16 bit R5 G6 B5
* copy to internal file system or SD card
*/
- int BMP_16(int x, int y, const char *Name_BMP);
+ int BMP_16(int x, int y, const char *charName_BMP);
/** select the font to use
@@ -324,6 +324,7 @@
*/
bool get_auto_up(void);
+ void drawXBitmap(int16_t x, int16_t y,const uint8_t *bitmap, int16_t w, int16_t h,uint16_t color);
private:
