zoukankan      html  css  js  c++  java
  • 通过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();

  • 相关阅读:
    source insight 使用介绍
    android 自定义progressBar
    appium环境安装
    js定义类的三种方法
    对象,函数,构造函数this,原型
    mindjet使用技巧
    在wamp下安装bugfree
    QTP
    powerdesigner使用
    随笔
  • 原文地址:https://www.cnblogs.com/yejiansnake/p/1590492.html
Copyright © 2011-2022 走看看