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.
Dependencies: BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI
Diff: zz_common/draw_bitmap.cpp
- Revision:
- 3:35ac9ee7d2d6
diff -r 2712267970df -r 35ac9ee7d2d6 zz_common/draw_bitmap.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/zz_common/draw_bitmap.cpp Wed Aug 07 05:39:01 2019 +0000
@@ -0,0 +1,133 @@
+// https://os.mbed.com/users/okano/code/bmp_8bit_per_pixel_format/
+
+#if 0
+
+#include "mbed.h" // for mbed
+LocalFileSystem local("local"); // for mbed to access local file system
+
+/*
+ *
+ * BMP file data handler sample
+ *
+ * reference : http://www.umekkii.jp/data/computer/file_format/bitmap.cgi
+ *
+ */
+
+#include <stdio.h>
+
+//#define SOURCE_FILE "/local/small.bmp"
+#define SOURCE_FILE "/local/pre4.bmp"
+//#define SOURCE_FILE "pre_dsp_4.bmp"
+
+#define BUFFER_SIZE 1024
+
+typedef struct bmp_header_st {
+ unsigned short bfType __attribute__((packed));
+ unsigned long bfSize __attribute__((packed));
+ unsigned short bfReserved1 __attribute__((packed));
+ unsigned short bfReserved2 __attribute__((packed));
+ unsigned long bfOffBits __attribute__((packed));
+
+ unsigned long biSize __attribute__((packed));
+ long biWidth __attribute__((packed));
+ long biHeight __attribute__((packed));
+ unsigned short biPlanes __attribute__((packed));
+ unsigned short biBitCount __attribute__((packed));
+ unsigned long biCompression __attribute__((packed));
+ unsigned long biSizeImage __attribute__((packed));
+ long biXPixPerMeter __attribute__((packed));
+ long biYPixPerMeter __attribute__((packed));
+ unsigned long biClrUsed __attribute__((packed));
+ unsigned long biCirImportant __attribute__((packed));
+}
+bmp_header;
+
+typedef struct color_palette_st {
+ unsigned char red;
+ unsigned char green;
+ unsigned char blue;
+ unsigned char dummy;
+}
+color_palette;
+
+
+int main() {
+ unsigned char buffer[ BUFFER_SIZE ];
+ FILE *fs;
+ bmp_header bh;
+ color_palette cp[256];
+ unsigned long readsize;
+ unsigned long i;
+ unsigned long ofset = 0;
+
+ printf( "BMP file access sample\r\n");
+
+ if ( NULL == (fs = fopen( SOURCE_FILE, "rb" )) ) {
+ printf( "file open error when oening file \"%s\"\r\n", SOURCE_FILE );
+ return ( 1 );
+ }
+
+ /*
+ * reading header
+ */
+
+ fread( &bh, sizeof( bh ), 1, fs );
+
+ printf( " bfType : 0x%04X\r\n", bh.bfType );
+ printf( " bfSize : %ld\r\n", bh.bfSize );
+ printf( " bfOffBits : %ld\r\n", bh.bfOffBits );
+ printf( " biSize : %lu\r\n", bh.biSize );
+ printf( " biWidth : %ld\r\n", bh.biWidth );
+ printf( " biHeight : %ld\r\n", bh.biHeight );
+ printf( " biPlanes : %d\r\n", bh.biPlanes );
+ printf( " biBitCount : %d\r\n", bh.biBitCount );
+ printf( " biCompression : %lu\r\n", bh.biCompression );
+ printf( " biSizeImage : %lu\r\n", bh.biSizeImage );
+ printf( " biXPixPerMeter : %ld\r\n", bh.biXPixPerMeter );
+ printf( " biYPixPerMeter : %ld\r\n", bh.biYPixPerMeter );
+ printf( " biClrUsed : %lu\r\n", bh.biClrUsed );
+ printf( " biCirImportant : %lu\r\n", bh.biCirImportant );
+
+ /*
+ * checking header
+ */
+
+ if ( (bh.bfType != 0x4D42)
+ || (bh.bfOffBits != 54 + 256 * sizeof( color_palette ) )
+ || (bh.biBitCount != 8)
+ || (bh.biCompression != 0)
+ ) {
+ printf( "unsupported file format\r\n" );
+ return ( 1 );
+ }
+
+ /*
+ * header information
+ */
+
+ printf( "header read, the image data size is %lu bytes\r\n", bh.bfSize );
+ printf( " the image data size is %lu bytes\r\n", bh.biSizeImage );
+ printf( " horizontal size %lu pixels\r\n", bh.biWidth );
+ printf( " vertical size %lu pixels\r\n", bh.biHeight );
+
+ /*
+ * read color palette
+ */
+
+ for ( i = 0; i < 256; i++ ) {
+ fread( &(cp[i]), sizeof( color_palette ), 1, fs );
+// printf( "cp 0x%02X : 0x%02X - 0x%02X - 0x%02X\r\n", i, (cp[i]).red, (cp[i]).green, (cp[i]).blue );
+ }
+
+
+ while ( 0 != (readsize = fread( buffer, sizeof( unsigned char ) , BUFFER_SIZE, fs )) ) {
+ for ( i = 0; i < readsize; i++ ) {
+// printf( " %6lX : 0x%02X, 0x%02X, 0x%02X\r\n", ofset, cp[ buffer[i] ].red, cp[ buffer[i] ].green, cp[ buffer[i] ].blue );
+ ofset++;
+ }
+ }
+
+ printf( "done.\r\n\r\n" );
+}
+
+#endif
\ No newline at end of file