wiki:Docs/Prog/Manual/ApplicationLibraries/lib825ev/Display/CBitmap

CBitmap

CBitmap is a C++ class that is provided to display bitmaps.

Constructors

CBitmap(void);
CBitmap(const string& strFilename);
CBitmap(const char* pszfilename);

The constructors with a passed filename create a CBitmap object and load the file into memory.

Parameters

  • strFilename - filename
  • pszFilename - filename

Examples

CBitmap image("/mnt/nand/apps/myapp/myapp.bmp");
string strFile = "/mnt/nand/apps/myapp/myapp.bmp";
CBitmap image(strFile);
CBitmap image;

This constructs the bitmap object without loading any file yet.

Member Functions

LoadBitmp

Opens a specified file.

int LoadBitmap(const string& strFilename, PALETTE_ITEM* transparent = NULL);
int LoadBitmap(const char* pszFilename, PALETTE_ITEM* transparent = NULL);

Parameters

  • strFilename - filename
  • pszFilename - filename
  • transparent - (optional parameter) if specified defines a particular color to treat as transparent instead of displaying the color

Return Value

ResponseDescription
BITMAP_SUCCESSOperation successful
ERR_BITMAP_FILE_OPENfile cannot be opened
ERR_BITMAP_HEADER_READbitmap header cannot be read
ERR_BITMAP_INFO_READbitmap info cannot be read
ERR_BITMAP_SIZE_OR_TYPEwidth is greater than 640, height is greater than 480, or bitmap is not 8 bits per pixel
ERR_BITMAP_PALETTE_READcolor palette cannot be read
ERR_BITMAP_TOO_MANY_COLORSToo many colors in palette
ERR_BITMAP_BITS_READbitmap bits cannot be read

Remarks

It is recommended that bitmaps should have a width that is evenly dividable by 4 such as 24, 32, 64, 68, etc... Otherwise the width will be padded to an even value.

Example

CBitmap bitamp;
if(bitmap.LoadBitmap("/mnt/nand/apps/myapp/myapp.bmp") != BITMAP_SUCCESS)
{
    DisplayText(0, 0, "Error loading bitmap");
}

PALETTE_ITEM trans;
trans.red = 128;
trans.green = 192;
trans.blue = 192;
trans.alpha = 0;

CBitmap bitamp;
if(bitmap.LoadBitmap("/mnt/nand/apps/myapp/myapp.bmp", &trans) != BITMAP_SUCCESS)
{
    DisplayText(0, 0, "Error loading bitmap");
}

DeleteBitmap

Deletes memory in RAM allocated to the bitmap. This does not delete the file.

void DeleteBitmap(void);

Parameters

Function does not accept any parameters

Return Value

Function does not return any result.

Remarks

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
bitmap.Draw(0, 0);
SleepSeconds(1);
ClearLCD();
bitmap.DeleteBitmap();

Draw

Draws the bitmap on the LCD display

void Draw(int x, int y);

Parameters

x - The X coordinate for the left side of the bitmap to be displayed y - The Y coordinate for the top of the bitmap to be displayed

Return Value

Function does not return any result.

Remarks

The X coordinate should be at an even four pixel coordinate such as 0, 4, 8, etc... Otherwise the displayed position will be moved to the right to the nearest even four pixel location.

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
bitmap.Draw(0, 0);

GetWidth

Get the width of the bitmap in pixels

int GetWidth(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns the width of the bitmap in pixels.

Remarks

Be sure that the InitLCD(1) call at the beginning of the application includes the parameter 1 so that the application will get the graphic data address. Bitmaps will not show if the default InitLCD() is called.

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
int x = bitmap.GetWidth();

GetHeight

Get the height of the bitmap in pixels

int GetHeight(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns the height of the bitmap in pixels.

Remarks

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
int y = bitmap.GetHeight();

GetColorCnt

Get the number of colors the bitmap uses

int GetColorCnt(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns the number of colors used by the bitmap.

Remarks

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
int n = bitmap.GetColorCnt();

GetColorsAdded

Get the numbers of colors added to the 825 global palette when the bitmap was loaded

int GetColorsAdded(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns the number of colors added to the 825 global palette when the bitmap was loaded.

Remarks

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
int n = bitmap.GetColorsAdded();

GetError

Get the error code

int GetError(void);

Parameters

Function does not accept any parameters.

Return Value

Function returns the current error code.

ResponseDescription
BITMAP_SUCCESSOperation successful
ERR_BITMAP_FILE_OPENfile cannot be opened
ERR_BITMAP_HEADER_READbitmap header cannot be read
ERR_BITMAP_INFO_READbitmap info cannot be read
ERR_BITMAP_SIZE_OR_TYPEwidth is greater than 640, height is greater than 480, or bitmap is not 8 bits per pixel
ERR_BITMAP_PALETTE_READcolor palette cannot be read
ERR_BITMAP_TOO_MANY_COLORSToo many colors in palette
ERR_BITMAP_BITS_READbitmap bits cannot be read
ERR_BITMAP_DRAW_OFF_SCREENBitmap draw would have placed bitmap off screen or partially off screen

Remarks

Example

CBitmap bitmap("/mnt/nand/apps/myapp/myapp.bmp");
int err = bitmap.GetError();
if(err != BITMAP_SUCCESS)
{
   DisplayText(0, 0, "Error loading bitmap");
}

ReclaimColors

Reclaim custom colors added by loading bitmaps

static void ReclaimColors(void);

Parameters

Function does not accept any parameters.

Return Value

Function does not return any value.

Remarks

In 8 bits per pixel mode all bitmaps and text or other graphics on the display at any given time must share a palette of 256 colors. Each color in the palette is a specified RGB (reg, green, blue) color. Loading multiple 8 bit per pixel bitmaps into memory may cause the palette to run out of space to add new colors, LoadBitmap may then error with code -7.

ReclaimColors releases the colors that were added by displaying bitmaps and returns the palette to the default text colors. ReclaimColors should only be called after any bitmaps on the display have been cleared, such as after calling ClearLCD.

Example

CBitmap img1("/mnt/nand/apps/myapp/img1.bmp");
CBitmap img2("/mnt/nand/apps/myapp/img2.bmp");
img1.Draw(0, 0);
img2.Draw(320, 0);

SleepSeconds(5);
ClearLCD();
img1.DeleteBitmap();
img2.DeleteBitmap();

CBitmap::ReclaimColors();

CBitmap img3("/mnt/nand/apps/myapp/img3.bmp");
CBitmap img4("/mnt/nand/apps/myapp/img4.bmp");
img3.Draw(0, 0);
img4.Draw(320, 0);
Last modified 12 years ago Last modified on 02/20/13 09:05:17
Note: See TracWiki for help on using the wiki.