通过IStream输出图像信息

//参数假设

PBYTE pbImage 为指向图像的指针

int nSize 为图像大小

CWnd *pCWnd 为输出到界面的元素指针

/

IStream *pStream = NULL;

//创建IStream

if (FAILED(CreateStreamOnHGlobal(NULL, TRUE, &pStream)))
{
    return -1;
}

 

//把图像内容写入流对象

pStream->Write(pbImage, nSize, NULL);

 

//由于写入后IStream的数据读写位置从 0 移动到了 nSize ,如果要输出写入的内容,

//需要设置读写位置到相应的位置上,类似对文档的读写操作过程。这里的宏STREAM_SEEK_SET为0。

LARGE_INTEGER liTemp = { 0 };
pStream->Seek(liTemp, STREAM_SEEK_SET, NULL);

 

//用IStream创建一个Bitmap对象

Bitmap TempBmp(pStream);

 

//获取要输出的区域

Rect aRect;

pCWnd->GetClientRect((LPRECT)&aRect);

 

//使用GDI+的接口来输出图像

Graphics grf(pCWnd->GetSafeHwnd());

grf.DrawImage(&TempBmp, aRect);

 

//不要忘了释放IStream,因为是通过COM接口创建的IStream,需要使用对象的Release方法释放

pStream->Release();

转载于:https://www.cnblogs.com/yejiansnake/archive/2009/10/27/1590492.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值