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

From Flowcode Help
Jump to navigationJump to search
 
(9 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
|-
 
|-
 
| width="20%" style="color:gray;" | Version
 
| width="20%" style="color:gray;" | Version
| 2.2
+
| 2.3
 
|-
 
|-
 
| width="20%" style="color:gray;" | Category
 
| width="20%" style="color:gray;" | Category
Line 15: Line 15:
 
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
  
==Component Source Code==
+
==Version information==
 
 
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]
+
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
  
 
==Detailed description==
 
==Detailed description==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
''No detailed description exists yet for this component''
 
''No detailed description exists yet for this component''
  
 
==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 92: Line 53:
  
  
==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;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Display_BMP'''
 
|-
 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Orientation
 
|-
 
| colspan="2" | 0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Flip
 
|-
 
| colspan="2" | 0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
 
|-
 
| 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;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| 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''
 
|}
 
  
  
  
 +
==Macro reference==
  
==Property reference==
+
===Display_BMP===
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | LinkTo
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | ColourDisplay
 
|-
 
| colspan="2" | Automatically detects if the graphical LCD object is colour or monochrome 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | ROM Bytes
 
|-
 
| colspan="2" | Total number of ROM bytes used to store attached bitmap images. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bitmap 0
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
 
| 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-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-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="90%" | File Width
 
|-
 
| colspan="2" | Width of the 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-type-21-icon.png]]
 
| width="90%" | Data Offset
 
|-
 
| colspan="2" | Offset in the file where the bitmap pixel data starts 
 
|}==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;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 406: Line 111:
  
  
 +
===Display_BMP_Fast===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 411: Line 117:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Display_BMP_Fast'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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 429: Line 135:
 
| 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 439: Line 145:
  
  
 
+
===GetHeight===
 
 
==Property reference==
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | LinkTo
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | ColourDisplay
 
|-
 
| colspan="2" | Automatically detects if the graphical LCD object is colour or monochrome 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | ROM Bytes
 
|-
 
| colspan="2" | Total number of ROM bytes used to store attached bitmap images. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bitmap 0
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
 
| 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-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-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="90%" | File Width
 
|-
 
| colspan="2" | Width of the 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-type-21-icon.png]]
 
| width="90%" | Data Offset
 
|-
 
| colspan="2" | Offset in the file where the bitmap pixel data starts 
 
|}==Macro reference==
 
 
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 522: Line 164:
  
  
 +
===GetWidth===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 540: Line 183:
  
  
 +
===SetTransparentColour===
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
|-
Line 566: Line 210:
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| 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;" | '''Display_BMP'''
 
|-
 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Orientation
 
|-
 
| colspan="2" | 0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Flip
 
|-
 
| colspan="2" | 0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
 
|-
 
| 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;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| 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''
 
|}
 
 
 
  
  
Line 673: Line 239:
 
|-
 
|-
 
| colspan="2" | Number of bitmaps the component can store and draw to the LCD. Min 1 / Max 10 
 
| 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-7-icon.png]]
 +
| width="90%" | Reload Bitmaps
 +
|-
 +
| 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
Line 687: Line 258:
 
|-
 
|-
 
| 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 704: Line 270:
 
|-
 
|-
 
| 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. 
|}==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="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetHeight'''
+
| width="90%" | Pallet Size
|-
 
| 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
+
| colspan="2" | Number of bytes in the file length used to store the colour pallet 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
 
|}
 
|}
  
 +
==Component Source Code==
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
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]
|-
 
| 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''
 
|}
 
  
 
+
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]
{| 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;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Display_BMP'''
 
|-
 
| colspan="2" | Draws the bitmap image from ROM onto the display at the corrdinates X and Y. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Orientation
 
|-
 
| colspan="2" | 0=Normal, 1=90 Degrees CW, 2=180 Degrees, 3=270 Degrees CW 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Flip
 
|-
 
| colspan="2" | 0=Normal, 1=FlipWidth, 2=FlipHeight, 3=FlipBoth 
 
|-
 
| 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;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''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. 
 
|-
 
|-
 
| 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" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | X
 
|-
 
| colspan="2" | X Axis coordinate, specifies the location of the left edge of the bitmap image 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Y
 
|-
 
| 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="90%" | Transparency
 
|-
 
| colspan="2" | 0=Off, 1=On Don't Draw Any Pixels which match the transparent colour 
 
|-
 
| 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="wikitable" style="width:60%; background-color:#FFFFFF;"
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | LinkTo
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | ColourDisplay
 
|-
 
| colspan="2" | Automatically detects if the graphical LCD object is colour or monochrome 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | ROM Bytes
 
|-
 
| colspan="2" | Total number of ROM bytes used to store attached bitmap images. 
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| 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" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bitmap 0
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-13-icon.png]]
 
| 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-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-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="90%" | File Width
 
|-
 
| colspan="2" | Width of the 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-type-21-icon.png]]
 
| width="90%" | Data Offset
 
|-
 
| colspan="2" | Offset in the file where the bitmap pixel data starts 
 
|}
 

Latest revision as of 15:16, 26 July 2024

Author Matrix TSL
Version 2.3
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

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.

BitmapDrawerProp.jpg


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

FC6 Icon.png Bitmap Drawer Demo

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

ZIP Icon.png 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.

FC6 Icon.png Bitmap Drawer Demo 2

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

ZIP Icon.png Bitmap Drawer Files 2








Macro reference

Display_BMP

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


Display_BMP_Fast

Fc9-comp-macro.png 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. 
Fc9-u8-icon.png - BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
Fc9-u16-icon.png - UINT X
X Axis coordinate, specifies the location of the left edge of the bitmap image 
Fc9-u16-icon.png - UINT Y
Y Axis coordinate, specifies the location of the top edge of the bitmap image 
Fc9-bool-icon.png - BOOL Mode
0=RowByRow, 1=FullWindow(Y Flipped) 
Fc9-void-icon.png - VOID Return


GetHeight

Fc9-comp-macro.png GetHeight
Returns the height of the loaded bitmap file in pixels. 
Fc9-u8-icon.png - BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
Fc9-u16-icon.png - UINT Return


GetWidth

Fc9-comp-macro.png GetWidth
Returns the width of the loaded bitmap file in pixels. 
Fc9-u8-icon.png - BYTE BitmapIndex
Selects from attached bitmaps. Range: 0-9 
Fc9-u16-icon.png - UINT Return


SetTransparentColour

Fc9-comp-macro.png SetTransparentColour
Sets the transparency colour, the colour that is not drawn when transparency is enabled. 
Fc9-u8-icon.png - BYTE R
 
Fc9-u8-icon.png - BYTE G
 
Fc9-u8-icon.png - BYTE B
 
Fc9-void-icon.png - VOID Return


Property reference

Fc9-prop-icon.png Properties
Fc9-type-16-icon.png LinkTo
 
Fc9-type-7-icon.png ColourDisplay
Automatically detects if the graphical LCD object is colour or monochrome 
Fc9-type-21-icon.png ROM Bytes
Total number of ROM bytes used to store attached bitmap images. 
Fc9-type-16-icon.png Number of Bitmaps
Number of bitmaps the component can store and draw to the LCD. Min 1 / Max 10 
Fc9-type-7-icon.png Reload Bitmaps
Reloads all bitmaps from source, useful to do when the bitmap files change. Will automatically reset to No when complete. 
Fc9-conn-icon.png Bitmap 0
Fc9-type-13-icon.png 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 
Fc9-type-21-icon.png File Colour Depth
Number of bits per pixel. Currently the component only supports bitmap files with 1-bit or 24-bit colour depth. 
Fc9-type-21-icon.png File Width
Width of the bitmap file in pixels 
Fc9-type-21-icon.png File Height
Height of the bitmap file in pixels 
Fc9-type-21-icon.png 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. 
Fc9-type-21-icon.png 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