怎么把数据表示的位图文件在VC中显示为图片??可以加分!

zmx0506 2006-12-21 05:03:18
大家看清楚了,我的情况是这样的,

别人把一个位图文件用数据流的形式传给我,我接到的就是一串数据,现在我要把它显示出来,怎么做?

具体用什么函数啊,??

我新学的,就知道两个函数LoadBitmap(), LoadImage(),这里看样子都用不上了,大家指点一下啊!

...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmx0506 2006-12-29
  • 打赏
  • 举报
回复
非常感谢大家的帮忙,

我结贴了,大家以后请继续跟我的贴,我是发贴必结的!

Jim_King_2000 2006-12-28
  • 打赏
  • 举报
回复
sorry, 是SetDIBitsToDevice
Jim_King_2000 2006-12-28
  • 打赏
  • 举报
回复
DIB的显示呀。用SetDIBsToDevice。
zmx0506 2006-12-28
  • 打赏
  • 举报
回复
up
zmx0506 2006-12-28
  • 打赏
  • 举报
回复


自己up
怎么没人回呢?
缔峰泽科技 2006-12-28
  • 打赏
  • 举报
回复
仔细看一定对有用
void Cmfc对话框Dlg::OnBnClickedButton3()
{
CImage mmage;
HWND hWnd = ::GetDesktopWindow();//获得屏幕的HWND.
HDC hScreenDC = ::GetDC(hWnd); //获得屏幕的HDC.
HDC MemDC = ::CreateCompatibleDC(hScreenDC);
RECT rect;

::GetWindowRect(hWnd,&rect);

HBITMAP hBitmap = ::CreateCompatibleBitmap(hScreenDC,rect.right,rect.bottom);
HGDIOBJ hOldBMP = ::SelectObject(MemDC,hBitmap);
::BitBlt(MemDC,0,0,rect.right,rect.bottom,hScreenDC,rect.left,rect.top,SRCCOPY);
hBitmap=(HBITMAP)::SelectObject(MemDC,hOldBMP);

mmage.Attach(hBitmap);
IStream* pStmImage = NULL;

HGLOBAL hMemBmp = GlobalAlloc(GMEM_MOVEABLE,0);//可移动的缓冲区
if (hMemBmp == NULL) return;
CreateStreamOnHGlobal(hMemBmp, FALSE, &pStmImage);//将内存区B作为流的起始
if (pStmImage == NULL)

{
GlobalFree(hMemBmp);
MessageBox(L"为空");
return ;
}
mmage.Save(pStmImage,ImageFormatJPEG);

BYTE* pbyBmp = (BYTE *)GlobalLock(hMemBmp);//得到缓冲区的起始地址

CFile mfile(L"234.jpg",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);
GlobalUnlock(hMemBmp);
mfile.Write(pbyBmp,GlobalSize(hMemBmp));
mfile.Close();
pStmImage->Release();
GlobalFree(hMemBmp);
if(mmage)
mmage.Destroy();
::DeleteObject(MemDC);
::ReleaseDC(hWnd,hScreenDC);

}

Jim_King_2000 2006-12-28
  • 打赏
  • 举报
回复
一行就可以了。自己看msdn吧。
zmx0506 2006-12-28
  • 打赏
  • 举报
回复
麻烦你详细一点好么?

我现在有位图数据,显示应该也要不了几行代码,麻烦写下,谢谢
zmx0506 2006-12-22
  • 打赏
  • 举报
回复


楼上的,你=没说

我也知道有,就是不晓得而已,我来这问,就是想问知道的,直接指点一哈,不然又得自己去翻书,很费时间的。项目不等人啊!
zhangnanonnet 2006-12-21
  • 打赏
  • 举报
回复
看看BMP文件的格式,活着那用MFC的CDC,好像有能直接显示BITMAP数据流的,我也记不太清了。你查一下MSDN
zmx0506 2006-12-21
  • 打赏
  • 举报
回复
自己up

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧