答案 0 :(得分:6)
看看this StackOverflow question。它提供了几个可满足您需求的选项。
改编自MSDN:
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
void draw()
{
// start up GDI+ -- only need to do this once per process at startup
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Rect rect(20,20,50,50);
Graphics grpx(dc);
Image* image = new Image(L"SomePhoto.png");
grpx.DrawImage(Img,rect);
delete image;
// shut down - only once per process
GdiplusShutdown(gdiplusToken);
return;
}
答案 1 :(得分:3)
您的选择是:GDI +,WIC(Windows Imaging Component)或libpng
答案 2 :(得分:2)
您可以使用GDI +。请参阅Loading and Displaying Bitmaps。
答案 3 :(得分:1)
以下代码对我有用。它没有MFC,可以直接用于在窗口中绘制PNG图像。
Gdiplus::Image image(L"C:\\Logo.png") ;
Gdiplus::Graphics* graphics = Gdiplus::Graphics::FromHDC(GetDC(hWnd));
RectF ImgRect(0,0,y3/10,y3/10) ;
Gdiplus::Status result = graphics->DrawImage(&image, ImgRect);
感谢您的所有支持和快速回复来解决我的问题。
答案 4 :(得分:0)
如果你知道PNG'编码,你可以解码它。所以你可以用任何方式绘制PNG~