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

  • Employees must exchange sensitive emails with customers and partners. These emails might contain protected health information, protected financial information, or corporate information that should not be made public. Globalscape® Mail Express® allows you to encrypt the emails that it manages so that no one but the sender and recipient--not even the administrator--can view the contents of the email. "Secure the Transfer of Sensitive Emails" is the property of GlobalSCAPE

  • Is your compliance strategy relying on disconnected processes and tools that leave your organization at risk? Do your security and operations teams run into conflicts--leading to a gap between audit and remediation? Now you can make even the most complex and dynamic IT infrastructure fully secure and compliant. Read this eBook and learn how to: Improve process and close the SecOps gap Quickly detect, audit and remediate breaches Create a more agile environment to comply to regulatory mandates Better …

Most Popular Programming Stories

More for Developers

RSS Feeds

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