To Implement Character Generation by using Bitmap Method in C++

Character Generation by the Bitmap Method is a fundamental technique in computer graphics for rendering text or custom symbols on a raster display. A character is represented as a two-dimensional binary (or integer) grid — called a bitmap — where each cell in the grid corresponds to one pixel. A 1 (or any non-zero value) means the pixel should be drawn; a 0 means it should be left blank. This method is used in early video games, embedded displays, and any system that needs custom pixel-perfect fonts.

#include<graphics.h>   // Turbo C++ graphics library
#include<conio.h>      // Console input-output (getch, clrscr)
#include<iostream.h>   // Standard input-output stream

void main()
{
    int graphicsDriver = DETECT, graphicsMode; // Auto-detect graphics driver
    initgraph(&graphicsDriver, &graphicsMode, "C:\\tc\\bgi"); // Initialise graphics mode

    // bitmapGrid[row][col]: 7 rows x 5 columns defines the character shape
    // Value 0 = blank pixel, non-zero = filled pixel
    int bitmapGrid[7][5];
    int row, col;

    clrscr(); // Clear the console screen before input

    cout << "Enter the bitmap array (7 rows x 5 columns, 0 for blank, 1 for filled):";

    // Read the 7x5 bitmap values from the user
    for (row = 0; row < 7; row++)
    {
        for (col = 0; col < 5; col++)
        {
            cin >> bitmapGrid[row][col];
        }
    }

    cout << endl << endl;
    cout << "The rendered character is:" << endl;

    // Render the character by printing each cell
    for (row = 0; row < 7; row++)
    {
        for (col = 0; col < 5; col++)
        {
            if (bitmapGrid[row][col] == 0)
                cout << " ";  // Blank cell: print a space
            else
                cout << bitmapGrid[row][col] << " "; // Filled cell: print the value
        }
        cout << endl; // Move to the next row
    }

    getch(); // Wait for a key press before closing
}

How the Code Works

  1. Graphics initialisationinitgraph() starts the BGI graphics mode. For this program the actual drawing happens in text mode on the console, but initialising graphics is included to match the Turbo C++ environment setup.
  2. Bitmap grid declarationbitmapGrid[7][5] is a 7-row by 5-column integer array. Seven rows represent the height of the character; five columns represent its width. This is a standard character cell size for simple pixel fonts.
  3. User input – The nested for loops read all 35 values (7×5) into the bitmap grid. The outer loop iterates over rows and the inner loop over columns.
  4. Rendering – A second pair of nested loops prints the character. For each cell, if the value is 0 a space is printed (blank pixel); otherwise, the numeric value followed by a space is printed (lit pixel). Each completed row ends with endl to move to the next line.
  5. Output format – The result is an ASCII-art representation of the character. For example, encoding a letter “H” as a 7×5 bitmap would produce a recognisable H-shape made of 1s and spaces.

Sample Input

The following 7×5 bitmap encodes a simple letter shape (e.g., the letter “A”):

0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
1 1 1 1 1
1 0 0 0 1
1 0 0 0 1
1 0 0 0 1

Output

Character Generation by using Bitmap Method
Character Generation by using Bitmap Method

Output Explanation

The screenshot shows the console after the user has entered a 7×5 bitmap. The program prints a grid where non-zero values appear as their digit (e.g., 1) followed by a space, and zero values appear as blank spaces. Together they form the visual shape of the intended character — demonstrating how pixel fonts are constructed from binary grids.


See Also


Conclusion

The Bitmap Method of character generation illustrates the fundamental relationship between a 2D integer grid and pixel-based rendering. By treating each cell as either lit or unlit, you can design any character or symbol for display on a raster screen. This principle underpins TrueType fonts, sprite sheets in game development, and LED matrix displays — making it a concept worth understanding thoroughly.

One thought on “To Implement Character Generation by using Bitmap Method in C++”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.