zoukankan      html  css  js  c++  java
  • 把jpg文件读取到内存char* 再转换成CImage

    网络上找到大神写的转换方法,不过就记下来,学习学习;

    当然转成CImage之后就可以从CImage转换成HBITMAP 了

    void DrawPic(CDC *pDC,char *buf,int len)
    {
        //内存数据转换成流
        HGLOBAL hMem=GlobalAlloc(GMEM_FIXED,len);
        BYTE* pMem=(BYTE*)GlobalLock(hMem);
        memcpy(pMem,buf,len);
        IStream* pStream;
        HRESULT hr=CreateStreamOnHGlobal(pMem,FALSE,&pStream);
    
        //画图
        CImage img;
        img.Load(pStream);
        img.Draw(pDC->GetSafeHdc(),CPoint(0,0));
    
        //清理
        img.Destroy();
        pStream->Release();
        GlobalFree(hMem);
    }

    帖子里同样也有了个疑问就是 GlobaLock 之后没有 unlock 大神给出的解释是:“这里用的固定块,GMEM_FIXED,没必要unlock”

    ----------------------------------------------------------------------------------

    http://bbs.csdn.net/topics/390973788

  • 相关阅读:
    PHP数组处理总结
    设计模式之-工厂模式理解
    我的世界观
    编程入门
    2019 新的一年
    placeholder 不支持ie8
    2018年8月20日
    HttpClientUtil
    通用mapper
    small_demo
  • 原文地址:https://www.cnblogs.com/wainiwann/p/7065746.html
Copyright © 2011-2022 走看看