将文字输出到图片上!
这是我的程序!大家帮我看看那里错了为什么出不来效果!谢谢啦 或有源程序吗发给我参考谢谢!
BITMAPINFOHEADER bmiHeader;
BYTE *m_Data;
CDC MemDC;
HBITMAP hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),
"D:\\aa.bmp",IMAGE_BITMAP,0,0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
BITMAP bm;
GetObject(hBitmap, sizeof BITMAP, &bm);
MemDC.CreateCompatibleDC(NULL);
CBitmap Bitmap;
Bitmap.LoadBitmap("D:\\aa.bmp");
MemDC.SetTextColor(0);
MemDC.SelectObject(Bitmap);
MemDC.TextOut(0,0,"李勇");
Bitmap.Detach();
m_Data=new BYTE [bm.bmHeight*bm.bmWidth*3];
Bitmap.GetBitmapBits(bm.bmHeight*bm.bmWidth*3,m_Data);
BITMAPFILEHEADER bmfh;
bmfh.bfType=0x4d42;
bmfh.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+81*18*3;
bmfh.bfReserved1=bmfh.bfReserved2=0;
bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER);
BITMAPINFOHEADER bmih;
bmih.biWidth=81;
bmih.biHeight=18;
bmih.biPlanes=1;
bmih.biBitCount=24;
bmih.biCompression=BI_RGB;
bmih.biSizeImage=81*18*3;
bmih.biXPelsPerMeter=0;
bmih.biYPelsPerMeter=0;
bmih.biClrUsed=0;
bmih.biClrImportant=0;
bmih.biSize=sizeof(BITMAPINFOHEADER);
CFile fp;
fp.Open("D:\\a.bmp",CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
fp.Write((LPSTR)&bmfh,sizeof(BITMAPFILEHEADER)); //写文件头
fp.Write((LPSTR)&bmih,sizeof(BITMAPINFOHEADER)); //写信息头
fp.Write(m_Data,81*18*3);
DeleteObject(hBitmap);
CDialog::OnOK();