Jump to content

Component: GLCD Bitmap Drawer ROM (Graphical Library): Difference between revisions

From Flowcode Help
Created page with "{| style="width:50%" |- | width="20%" style="color:gray;" | Author | Matrix TSL |- | width="20%" style="color:gray;" | Version | 2.2 |- | width="20%" style="color:gray..."
 
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(28 intermediate revisions by 3 users not shown)
Line 5: Line 5:
|-
|-
| width="20%" style="color:gray;" | Version
| width="20%" style="color:gray;" | Version
| 2.2
| 3.0
|-
|-
| width="20%" style="color:gray;" | Category
| width="20%" style="color:gray;" | Category
Line 14: Line 14:
==GLCD Bitmap Drawer ROM component==
==GLCD Bitmap Drawer ROM component==
A component to simplify the process of drawing bitmap images to a graphical display. Stores up to 10 bitmap images inside ROM based look up tables. Compatible with 24-bit / 256 Colour / 16 Colour /  Monochrome Bitmaps. The gLCD object property specifies which LCD component to draw the bitmap to. Compatible with GLCD, NeoPixel, MIACv3, HT16K33
A component to simplify the process of drawing bitmap images to a graphical display. Stores up to 10 bitmap images inside ROM based look up tables. Compatible with 24-bit / 256 Colour / 16 Colour /  Monochrome Bitmaps. The gLCD object property specifies which LCD component to draw the bitmap to. Compatible with GLCD, NeoPixel, MIACv3, HT16K33
==Version information==
Library Version, Component Version, Date, Author, Info
13, 2.2, 22-07-24, BR, Updated Bitmap Mono Dummy Component - Testing
14, 2.3, 24-07-24, BR, Fixed a problem with file size reporting of 4/8 bit bitmaps
14, 2.3, 24-07-24, BR, Added Pallet size information for 4/8 bit bitmaps
15, 2.3, 24-07-24, BR, Reduced stored Pallet size by 1/4
16, 2.3, 26-07-24, BR, Added reload file property allowing for easier way to update bitmaps from source
17, 2.4, 12-08-24, BR, Added LookupFilename function to allow the component to work with DisplayManager


==Detailed description==
==Detailed description==
Line 20: Line 30:


==Examples==
==Examples==


The Bitmap Drawer component must be linked to the graphical LCD using the gLCD Object property.
The Bitmap Drawer component must be linked to the graphical LCD using the gLCD Object property.
Line 46: Line 54:




==Downloadable macro reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetHeight'''
|-
| colspan="2" | Returns the height of the loaded bitmap file in pixels. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetWidth'''
|-
| colspan="2" | Returns the width of the loaded bitmap file in pixels. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetTransparentColour'''
|-
| colspan="2" | Sets the transparency colour, the colour that is not drawn when transparency is enabled. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | R
|-
| colspan="2" |  
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | G
|-
| colspan="2" |  
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | B
|-
| colspan="2" |  
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
 
 
 
==Macro reference==
 
===Display_BMP===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Display_BMP'''
| width="90%" class="mtx-class-macrohead" | '''Display_BMP'''
|-
|-
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
Line 155: Line 112:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===Display_BMP_Fast===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Display_BMP_Fast'''
| width="90%" class="mtx-class-macrohead" | '''Display_BMP_Fast'''
|-
|-
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Attempts to draw a row at a time by not forcing coordinates for every pixel so may not work on some displays. Currently only supports colour displays. 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Speeds up drawing by not assigning X/Y coordinate for each pixel. Currently only supports colour displays. 
|-
|-
|-
|-
Line 178: Line 136:
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Transparency
| width="90%" | Mode
|-
|-
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
| colspan="2" | 0=RowByRow, 1=FullWindow(Y Flipped) 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 188: Line 146:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===Display_BMP_Fast_Partial===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ShowName'''
| width="90%" class="mtx-class-macrohead" | '''Display_BMP_Fast_Partial'''
|-
|-
| colspan="2" | Sets the label to show the target object's name 
| colspan="2" | Draws a partial bitmap image from ROM onto the display at the coordinates X and Y. Speeds up drawing by not assigning X/Y coordinate for each pixel. Allows drawing a percentage of the bitmap width and height from a specified side (top/bottom, left/right). Currently only supports colour displays. 
|-
|-
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | BitmapIndex
|}
 
 
 
 
==Property reference==
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | X
|-
|-
| width="10%" align="center" | [[File:Fc9-type-17-icon.png]]
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
| width="90%" | gLCD Object
|-
|-
| colspan="2" | Graphical LCD Object to draw the bitmap image to 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Y
|-
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
| width="90%" | ColourDisplay
|-
|-
| colspan="2" | Automatically detects if the graphical LCD object is colour or monochrome 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | WidthPercent
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Percentage of bitmap width to draw. Range: 0-100 
| width="90%" | ROM Bytes
|-
|-
| colspan="2" | Total number of ROM bytes used to store attached bitmap images. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | HeightPercent
|-
|-
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| colspan="2" | Percentage of bitmap height to draw. Range: 0-100 
| width="90%" | Number of Bitmaps
|-
|-
| colspan="2" | Number of bitmaps the component can store and draw to the LCD. Min 1 / Max 10 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | HorizontalSide
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | Which horizontal side to draw from: 0=Left, 1=Right 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | VerticalSide
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Which vertical side to draw from: 0=Top, 1=Bottom 
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Mode
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=RowByRow, 1=FullWindow(Y Flipped) 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===Display_BMP_Partial===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | File Width
| width="90%" class="mtx-class-macrohead" | '''Display_BMP_Partial'''
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| colspan="2" | Draws a partial bitmap image from ROM onto the display at the coordinates X and Y. Allows drawing a percentage of the bitmap width and height from a specified side (top/bottom, left/right). 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | X
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Y
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | WidthPercent
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Percentage of bitmap width to draw. Range: 0-100 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | HeightPercent
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Percentage of bitmap height to draw. Range: 0-100 
| width="90%" | File Width
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | HorizontalSide
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Which horizontal side to draw from: 0=Left, 1=Right 
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | VerticalSide
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Which vertical side to draw from: 0=Top, 1=Bottom 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Orientation
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | 0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Transparency
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Flip
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===Display_Scaled_BMP===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | File Width
| width="90%" class="mtx-class-macrohead" | '''Display_Scaled_BMP'''
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Scales the bitmap to the specified width and height. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | X
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Y
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Width
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | The size in pixels to draw the bitmap image 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Height
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | The size in pixels to draw the bitmap image 
| width="90%" | File Width
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Orientation
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Transparency
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Flip
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | 0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===Display_Scaled_BMP_Fast===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | File Colour Depth
| width="90%" class="mtx-class-macrohead" | '''Display_Scaled_BMP_Fast'''
|-
|-
| colspan="2" | Number of bits per pixel. Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Scales the bitmap to the specified width and height. Speeds up drawing by not assigning X/Y coordinate for each pixel. Currently only supports colour displays. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" | File Width
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | X
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Y
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Y Axis coordinate, specifies the location of the top edge of the bitmap image 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Width
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| colspan="2" | The size in pixels to draw the bitmap image 
| width="90%" | Bitmap File
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Height
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | The size in pixels to draw the bitmap image 
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Mode
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | 0=RowByRow, 1=FullWindow(Y Flipped) 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===GetHeight===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | File Width
| width="90%" class="mtx-class-macrohead" | '''GetHeight'''
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| colspan="2" | Returns the height of the loaded bitmap file in pixels. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===GetWidth===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | Bitmap File
| width="90%" class="mtx-class-macrohead" | '''GetWidth'''
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| colspan="2" | Returns the width of the loaded bitmap file in pixels. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | BitmapIndex
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Selects from attached bitmaps. Range: 0-9 
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===LookupFilename===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | File Width
| width="90%" class="mtx-class-macrohead" | '''LookupFilename'''
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| colspan="2" | Checks to see if one of the loaded files matches the supplied filename. If a match is found then returns the bitmap index 0-9. If no match is found then returns 255. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | Filename
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" | Filename without the included path e.g. "sprite.bmp", not case sensitive 
| width="90%" | Data Offset
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===SetTransparentColour===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" | Bitmap File
| width="90%" class="mtx-class-macrohead" | '''SetTransparentColour'''
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| colspan="2" | Sets the transparency colour, the colour that is not drawn when transparency is enabled. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Colour Depth
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | R
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" |  
| width="90%" | File Length
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | G
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" |  
| width="90%" | File Width
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | B
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| colspan="2" |  
| width="90%" | File Height
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
==Property reference==
 
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" | Data Offset
| width="90%" class="mtx-class-macrohead" | '''Properties'''
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Bitmap File
| width="90%" | LinkTo
|-
|-
| colspan="2" | Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| width="90%" | File Colour Depth
| width="90%" | ColourDisplay
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| colspan="2" | Automatically detects if the graphical LCD object is colour or monochrome 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Length
| width="90%" | ROM Bytes
|-
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume.  You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
| colspan="2" | Total number of ROM bytes used to store attached bitmap images. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | File Width
| width="90%" | Number of Bitmaps
|-
|-
| colspan="2" | Width of the bitmap file in pixels 
| colspan="2" | Number of bitmaps the component can store and draw to the LCD. Min 1 / Max 10 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
| width="90%" | File Height
| width="90%" | Reload Bitmaps
|-
|-
| colspan="2" | Height of the bitmap file in pixels 
| colspan="2" | Reloads all bitmaps from source, useful to do when the bitmap files change. Will automatically reset to No when complete. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" | Data Offset
| width="90%" class="mtx-class-propfolder" | Bitmap 0
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
Line 510: Line 494:
|-
|-
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
| colspan="2" | Number of bits per pixel.  Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | File Length
|-
| colspan="2" | The number of bytes of ROM the bitmap file will consume.  You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Line 527: Line 506:
|-
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Data Offset
| width="90%" | File Length
|-
|-
| colspan="2" | Offset in the file where the bitmap pixel data starts 
| colspan="2" | The number of bytes of ROM the bitmap file will consume.  You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
| width="90%" | Pallet Size
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
|-
|-
| colspan="2" | Number of bytes in the file length used to store the colour pallet 
|}
|}
==Component Source Code==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Lib_Draw_Bitmap.fcfx FC_Comp_Source_Lib_Draw_Bitmap.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Lib_Draw_Bitmap.fcfx FC_Comp_Source_Lib_Draw_Bitmap.fcfx]

Latest revision as of 14:36, 13 July 2026

Author Matrix TSL
Version 3.0
Category Graphical Library


GLCD Bitmap Drawer ROM component

A component to simplify the process of drawing bitmap images to a graphical display. Stores up to 10 bitmap images inside ROM based look up tables. Compatible with 24-bit / 256 Colour / 16 Colour / Monochrome Bitmaps. The gLCD object property specifies which LCD component to draw the bitmap to. Compatible with GLCD, NeoPixel, MIACv3, HT16K33

Version information

Library Version, Component Version, Date, Author, Info
13, 2.2, 22-07-24, BR, Updated Bitmap Mono Dummy Component - Testing
14, 2.3, 24-07-24, BR, Fixed a problem with file size reporting of 4/8 bit bitmaps
14, 2.3, 24-07-24, BR, Added Pallet size information for 4/8 bit bitmaps
15, 2.3, 24-07-24, BR, Reduced stored Pallet size by 1/4
16, 2.3, 26-07-24, BR, Added reload file property allowing for easier way to update bitmaps from source
17, 2.4, 12-08-24, BR, Added LookupFilename function to allow the component to work with DisplayManager

Detailed description

No detailed description exists yet for this component

Examples

The Bitmap Drawer component must be linked to the graphical LCD using the gLCD Object property.


Here is an example which loops drawing a monochrome and 24-bit bitmaps to the EBM001 graphical display.

Bitmap Drawer Demo

The bitmap files used in the example can be found here.

Bitmap Drawer Files


Here is another example which overlays several monochrome images to give the impression of animation. Shows a pair of eyes, which can randomly and momentarily look left, right or blink.

Bitmap Drawer Demo 2

The bitmap files used in the example can be found here.

Bitmap Drawer Files 2








Macro reference

Display_BMP

Display_BMP
Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- BYTE Orientation
0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
- BYTE Transparency
0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
- BYTE Flip
0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
- VOID Return


Display_BMP_Fast

Display_BMP_Fast
Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Speeds up drawing by not assigning X/Y coordinate for each pixel. Currently only supports colour displays. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- BOOL Mode
0=RowByRow, 1=FullWindow(Y Flipped) 
- VOID Return


Display_BMP_Fast_Partial

Display_BMP_Fast_Partial
Draws a partial bitmap image from ROM onto the display at the coordinates X and Y. Speeds up drawing by not assigning X/Y coordinate for each pixel. Allows drawing a percentage of the bitmap width and height from a specified side (top/bottom, left/right). Currently only supports colour displays. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- BYTE WidthPercent
Percentage of bitmap width to draw. Range: 0-100 
- BYTE HeightPercent
Percentage of bitmap height to draw. Range: 0-100 
- BYTE HorizontalSide
Which horizontal side to draw from: 0=Left, 1=Right 
- BYTE VerticalSide
Which vertical side to draw from: 0=Top, 1=Bottom 
- BOOL Mode
0=RowByRow, 1=FullWindow(Y Flipped) 
- VOID Return


Display_BMP_Partial

Display_BMP_Partial
Draws a partial bitmap image from ROM onto the display at the coordinates X and Y. Allows drawing a percentage of the bitmap width and height from a specified side (top/bottom, left/right). 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- BYTE WidthPercent
Percentage of bitmap width to draw. Range: 0-100 
- BYTE HeightPercent
Percentage of bitmap height to draw. Range: 0-100 
- BYTE HorizontalSide
Which horizontal side to draw from: 0=Left, 1=Right 
- BYTE VerticalSide
Which vertical side to draw from: 0=Top, 1=Bottom 
- BYTE Orientation
0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
- BYTE Transparency
0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
- BYTE Flip
0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
- VOID Return


Display_Scaled_BMP

Display_Scaled_BMP
Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Scales the bitmap to the specified width and height. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- UINT Width
The size in pixels to draw the bitmap image 
- UINT Height
The size in pixels to draw the bitmap image 
- BYTE Orientation
0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
- BYTE Transparency
0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
- BYTE Flip
0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
- VOID Return


Display_Scaled_BMP_Fast

Display_Scaled_BMP_Fast
Draws the bitmap image from ROM onto the display at the corrdinates X and Y. Scales the bitmap to the specified width and height. Speeds up drawing by not assigning X/Y coordinate for each pixel. Currently only supports colour displays. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
- UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
- UINT Width
The size in pixels to draw the bitmap image 
- UINT Height
The size in pixels to draw the bitmap image 
- BOOL Mode
0=RowByRow, 1=FullWindow(Y Flipped) 
- VOID Return


GetHeight

GetHeight
Returns the height of the loaded bitmap file in pixels. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT Return


GetWidth

GetWidth
Returns the width of the loaded bitmap file in pixels. 
- BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
- UINT Return


LookupFilename

LookupFilename
Checks to see if one of the loaded files matches the supplied filename. If a match is found then returns the bitmap index 0-9. If no match is found then returns 255. 
- STRING Filename
Filename without the included path e.g. "sprite.bmp", not case sensitive 
- BYTE Return


SetTransparentColour

SetTransparentColour
Sets the transparency colour, the colour that is not drawn when transparency is enabled. 
- BYTE R
 
- BYTE G
 
- BYTE B
 
- VOID Return


Property reference

Properties
LinkTo
 
ColourDisplay
Automatically detects if the graphical LCD object is colour or monochrome 
ROM Bytes
Total number of ROM bytes used to store attached bitmap images. 
Number of Bitmaps
Number of bitmaps the component can store and draw to the LCD. Min 1 / Max 10 
Reload Bitmaps
Reloads all bitmaps from source, useful to do when the bitmap files change. Will automatically reset to No when complete. 
Bitmap 0
Bitmap File
Bitmap file you wish to embed into the program. Compatible with .bmp files in the following formats: 24-Bit / 256 Colour / 16 Colour / Monochrome 
File Colour Depth
Number of bits per pixel. Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
File Width
Width of the bitmap file in pixels 
File Height
Height of the bitmap file in pixels 
File Length
The number of bytes of ROM the bitmap file will consume. You can vie wthe number of ROM bytes available on your target device using the Device Helper component. 
Pallet Size
Number of bytes in the file length used to store the colour pallet 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_Lib_Draw_Bitmap.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_Lib_Draw_Bitmap.fcfx