Click here to Skip to main content
Click here to Skip to main content
Go to top

Displaying split Bitmap files

, 18 Jun 2003
Rate this:
Please Sign up or sign in to vote.
CSplitBitmap is a Class to load, split and display BMP files

Introduction

I was thinking about making a puzzle game. I found in a book, a chapter about using bitmaps, but it was not explained how to display a part of a bitmap, but I knew this was possible. After some searching and reading, I was able to write the CSplitBitmap class.

Using the code

Using the CSplitBitmap class is very simple. Just declare and object.

CSplitBitmap splitobj;

The next thing to do is to load a bitmap image like this:

splitobj.LoadImage("<A href="file:///c://images//foto.jpg">c:\\images\\foto.jpg</A>");
//the next line of code splits the image in 3 x 3 parts. 
//The width and height of these parts are the same
splitobj.SplitBitmap(3,3);

In my example I used the OnDraw() function of the View class to display the image and the other parts.

void CBitmaptestView::OnDraw(CDC* pDC)
{
    CBitmaptestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here

    CMemDC dc(pDC);

    if(_bmpLoaded)
    {
        //this function is used to display the whole image
        _obj.DrawEntireBitmap(dc,10,300);
        // there the different parts of the 
        //splitted image are drawn in the window
        _obj.DrawPartOfBitmap(dc,10,10,1,1);
        // part 2,1
        _obj.DrawPartOfBitmap(dc,80,10,2,1);
        // part 3,1
        _obj.DrawPartOfBitmap(dc,150,10,3,1);
        //...
        _obj.DrawPartOfBitmap(dc,10,80,1,2);
        _obj.DrawPartOfBitmap(dc,80,80,2,2);
        _obj.DrawPartOfBitmap(dc,150,80,3,2);
        _obj.DrawPartOfBitmap(dc,10,150,1,3);
        _obj.DrawPartOfBitmap(dc,80,150,2,3);
        _obj.DrawPartOfBitmap(dc,150,150,3,3);

        // here we select a part of the picture. 300 and 10 are 
        // the x- and y-coordinates of the picture 
        // in the view-window
        // 100 and 100 are the coordinates of the 
        // TopLeft-point were the part starts
        // 30 and 30 are the width and height of the selected part
        _obj.DrawCustomBMP(dc,300,10,100,100,30,30);

    }

    dc.TextOut(_mouseLoc.x,_mouseLoc.y,
        "press left mousebutton to load a bmp-file");
}

Some other functions:

  • long GetBMPHeight(): returns the height of the loaded image.
  • long GetBPWidth(): returns the width of the loaded image.

Conclusion

For the future I was thinking about adding some member functions to alter the width and height of a bitmap. I still didn't figured out how to do it, but I'm sure I can. :p

Acknowledgement

I want to thank Keith Rule because I used his CMemDC class to stop the flickering of the view-window of my demo application.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Franske
Web Developer
Belgium Belgium
No Biography provided

Comments and Discussions

 
Generaldisply image PinmemberSonipriya14-Feb-07 2:52 
GeneralRe: disply image Pinmvptoxcct14-Feb-07 9:21 
QuestionHow to copy the new Splited part to CBitmap or HBITMAP ? PinmemberManni Singh8-Dec-06 18:44 
Questionhow can a polygon part of a bitmap be shown Pinmemberbestwsfz3j18-Dec-05 21:55 
GeneralDisplaying split Bitmap files Pinmembergommir9-May-05 3:59 
Generalsplit window PinsussJC Tan4-Jan-04 7:31 
GeneralNeeds to be tidied up a bit. PinmemberWREY22-Jun-03 3:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 19 Jun 2003
Article Copyright 2003 by Franske
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid