0

I’m writing a code on microsoft visual c++ 6.0 for load *bmp file and save it to *bmp file too. But i got stuck on save to *bmp code. Help me please..

void WarnaToRGB(long int warna,int *Red,int *Green,int *Blue) 
{ 
 *Red=warna&0x000000FF; 
 *Green=(warna&0x0000FF00)>>8; 
 *Blue=(warna&0x00FF0000)>>16; 
}

long int RGBToWarna(int Red,int Green,int Blue) 
{ 
 return(Red+(Green<<8)+(Blue<<16)); 
}

/*This code used for load an image and display it on a picture box*/
void CSaveimageDlg::OnButton1() 
{
    static char BASED_CODE szFilter[]="Bitmap Files(*.bmp)|*.bmp||";
    CFileDialog m_ldFile(TRUE,"*.bmp",name,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
    if(m_ldFile.DoModal()==IDOK)
    {
        name=m_ldFile.GetPathName();
    }   
    CDC* pDC = m_picture1.GetDC();
    CDC dcMem;
    CRect rect;
    BITMAP bm;
    HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),name,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if(hBitmap)
    {
        if(m_bmpBitmap.DeleteObject())m_bmpBitmap.Detach();
        m_bmpBitmap.Attach(hBitmap);
    }
    m_picture1.GetClientRect(rect);
    m_bmpBitmap.GetBitmap(&bm);
    dcMem.CreateCompatibleDC(pDC);
    dcMem.SelectObject(&m_bmpBitmap);
    pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}

/*This code used for display image on a picture box*/
void CSaveimageDlg::OnButton2() 
{
    int i,j,red,green,blue,r,g,b;
    long int warna,warnagray;
    CDC* pDC=m_picture2.GetDC();
    CDC dcMem;
    CRect rect;
    BITMAP bm;
    HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),name,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if(hBitmap)
    {
        if(m_bmpBitmap.DeleteObject())m_bmpBitmap.Detach();
        m_bmpBitmap.Attach(hBitmap);
    }
    m_picture2.GetClientRect(rect);
    m_bmpBitmap.GetBitmap(&bm);
    dcMem.CreateCompatibleDC(pDC);
    dcMem.SelectObject(&m_bmpBitmap);
    for(i=0;i<bm.bmHeight;i++)
    {
        for(j=0;j<bm.bmWidth;j++)
        {
            warna=dcMem.GetPixel(j,i);
            WarnaToRGB(warna,&red,&green,&blue);
            r=red;
            g=green;
            b=blue;
            warnagray=RGBToWarna(r,g,b);
            dcMem.SetPixel(j,i,warnagray);
        }
    }
    pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}

/*I got stuck on this code,how to save it to a *bmp file? Please help me..*/
void CSaveimageDlg::OnButton3() 
{

??????????

}

Edited by Reverend Jim: Fixed formatting

2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by Pynolathgeen
0

I don't understand that code, put it between code syntax plox.

Edited by happygeek: fixed formatting

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.