为什么我的图片显示不出来,,,?GDI+配置没问题
下面是代码,,,,
Graphics graphics(dc.GetSafeHdc());
Image img(L"C:\\Users\\john\\Desktop\\图片\\2.jpg");
graphics.DrawImage(&img,100,50,img.GetWidth(),img.GetHeight());

解决方案 »

  1.   

    Image img(L"C:\\Users\\john\\Desktop\\图片\\2.jpg"); 
    不要用中文路径,改成英文路径试试,也不要把图片文件放到桌面上应该是你的路径不对造成的
      

  2.   

    GDI初始化函数加了吗,在工程的初始化函数加上GDI的初始化函数,具体的初始化函数你查一下,我忘了
      

  3.   

     graphics.DrawImage(&img,0,0,100,100);
    调试看一下img是否有值,img的长宽各是多少!
      

  4.   

    代码有问题,试试下面的:        #include <atlimage.h>在OnDraw()函数里面添加:        char path[256];
    GetCurrentDirectory(256,path);
    CString filepath = path;
    filepath += "\\res\\2.JPG";
    image.Load(filepath);
    HBITMAP hBitmap=image.Detach();
    CBitmap bmp;
    bmp.Attach(hBitmap); CMainFrame* pframe = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    CImgTestView* pview = (CImgTestView*)pframe->GetActiveView();
    CDC* pdc = pview->GetDC();
    CDC memdc;
    memdc.CreateCompatibleDC(pdc);
    memdc.SelectObject(&bmp);
    pdc->BitBlt(0,0,3000,3000,&memdc,0,0,SRCCOPY);
    memdc.DeleteDC();
    bmp.DeleteObject();
      

  5.   

    这位才是一针见血。我以前用gdi+也经常忘记初始化。牢记!
      

  6.   


    有可能是这个问题也有可能代码没写对地方。断ondraw里是要的。
      

  7.   

    断点调一下,看看img.GetWidth()返回的值是否正常!
      

  8.   

    1.保证有初始化
    Gdiplus::GdiplusStartupInput gdiplusStartupInput;
    Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);2.你的dc是啥?
    CPaintDC dc(this);
    还是GetDC?  
    对话框要用CPaintDC ,View就用GetDC3.
    Image img(L"C:\\Users\\john\\Desktop\\图片\\2.jpg"); 断点看看img是否有内容