BMP MERGER -- A Reusable Class to Merge BMP files, Load a Bitmap from a BMP File, and Display HBITMAP without Flicker

Environment: Windows 2000 SP2, VC6 SP3
  1. MFC is NOT needed.
  2. A HBITMAP is created from a group of BMP files and the final palette is also returned if needed.
  3. Loads a bitmap from a BMP file; the corresponding palette is also returned.
  4. Displays a bitmap to the given DC without flicker at the given starting point.
  5. Three types of styles can be applied while merging bitmaps. See the images.
    • HORIZONTAL_TILE—This is the default. Aligns all bitmaps horizontally.
    • VERTICAL_TILE—Aligns all bitmaps vertically.
    • MATRIX_TILE—Aligns bitmaps in a matrix style. Gaps are filled with the given background color.
  6. The corresponding palette is also returned if needed; otherwise, it passes NULL if the palette is not needed.
  7. If there are any gaps after merging, they will be filled with the given background color. The default color is BLACK.

To see how the demo works, click the Horizontal, Vertical, and Matrix toolbar buttons. See the following sample source code.

void CBmpLoaderView::OnDraw(CDC* pDC)
{
  CBmpLoaderDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);

  CBitmapMerger BmpMerger;
  int width=0, height=0;
  HPALETTE hPal = NULL;
  HBITMAP hCombBmp = NULL;
  LPCTSTR aFiles[5] = {"Bmp1.bmp", "Bmp2.bmp",
    "Bmp3.bmp", "Bmp4.bmp", "Bmp5.bmp"};
  hCombBmp = BmpMerger.CombineBitmaps(aFiles, 5, &width, &height,
             &hPal, RGB(128,128, 128), g_mode);

  //>> hCombBmp = comb.LoadBitmapFromFile("Bmp4.bmp");

  BmpMerger.DisplayBmp(pDC->GetSafeHdc(), hCombBmp, hPal, 5, 5);

  DeleteObject( hPal );
  DeleteObject( hCombBmp );
}

Downloads

Download demo project - 288 Kb
Download source - 13 Kb


Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Migrating away from Windows Server 2003 is an investment in your organization's future, and there has never been a better time to begin the migration process. Take the next step to transform your datacenter by upgrading your server platform with leading edge Windows Operating Systems and SanDisk flash solutions.

  • Today, users, applications, and data exist in more places than ever before, creating an unprecedented challenge for IT. How can IT achieve the flexibility and agility it needs to offer multiple types of applications in multiple locations? To better serve business demands for information everywhere, enterprises must develop new strategies for optimizing multiple kinds of networks. Read this white paper to learn how hybrid networks provide an unprecedented level of network dynamism, enterprise agility, and the …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date