我写了一个程序,没有用MFC,但是用到了GDI+,现在我想通过GDI+从文件载入一个PNG图片到内存里,但是在网上找了好半天,只找到了一个从资源载入的怎么在不使用MFC的情况下,用GDI+从文件载入一个PNG图片,保存在一个Image里面啊?

解决方案 »

  1.   

    LZ请参考下面的文章:
    http://wenku.baidu.com/view/8f60ba84b9d528ea81c7792e.html
    http://www.vckbase.com/document/viewdoc/?id=1745
      

  2.   

    Image xxx(L"FileName");或Image *pXXX = Image::FromFile(L"FileName");
      

  3.   

    你都用了GDI+,为啥不去它的类的定义看看呢,构造函数,公有函数等等..一下子不就OK了.搜索"陈宝楷GDI+"很不错的书.
      

  4.   


    HINSTANCE hInst = AfxGetResourceHandle();
    HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),_T("PNG")); // type
    if (!hRsrc)
    return FALSE;
    // load resource into memory
    DWORD len = SizeofResource(hInst, hRsrc);
    BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
    if (!lpRsrc)
    return FALSE;
    // Allocate global memory on which to create stream
    HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len);
    BYTE* pmem = (BYTE*)GlobalLock(m_hMem);
    memcpy(pmem,lpRsrc,len);
    IStream* pstm;
    CreateStreamOnHGlobal(m_hMem,FALSE,&pstm);
    // load from stream
    pImg=Gdiplus::Image::FromStream(pstm);
    // free/release stuff
    GlobalUnlock(m_hMem);
    pstm->Release();
    FreeResource(lpRsrc);
    return TRUE;
      

  5.   

    使用Ole加载BMP、JPG、GIF图片
    http://blog.csdn.net/ilysony/archive/2010/10/21/5956063.aspx
      

  6.   

    http://www.vckbase.com/document/viewdoc/?id=1745