HardBirch

常用的GDI+ 函数使用例子

时间:12-02-19 栏目:iOS游戏开发技术 作者:张飞不张,文采横飞 评论:0 点击: 1,566 次

一、通过Gdi+加载和显示PNG,JPG等格式的图片

//直接加载外部的图像
Image* image = new Image(L"test.png");
//如果需要通过ID 来加载的话
BOOL CSmalltmpdemoDlg::ImageFromIDResource(UINT nID, LPCTSTR sTR, Image * & pImg)
{
    HINSTANCE hInst = AfxGetResourceHandle();
    HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // 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;
}
//调用方式
Image * pImage = NULL; 

ImageFromIDResource(IDR_PNG_NO_PIC, L"png", pImage); 

delete pImage; 

///////////////////////////////////////////////////////////////////////// 

Image * pImage = NULL; 

ImageFromIDResource(IDR_PNG_NO_PIC, L"jpg", pImage); 

delete pImage; 

////////////////////////////////////////////////////////////////////////// 

Image * pImage = NULL; 

ImageFromIDResource(IDR_PNG_NO_PIC, L"bitmap", pImage); 

delete pImage; 

二、实现一个渐变的画刷 

  CClientDC dc(this);
  CRect rect;
  //获得当前客户区的大小
  GetClientRect(&rect);
  //创建Graphics对象
  Graphics graphics(dc);
  //创建渐变画刷
  LinearGradientBrush lgb(Point(0, 0), Point(rect.right, rect.bottom), Color
    ::Blue, Color::Green);
  //填充
  graphics.FillRectangle(&lgb, 0, 0, rect.right, rect.bottom);

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: 常用的GDI+ 函数使用例子

常用的GDI+ 函数使用例子:等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐