我想粘贴一个从src到dest的(x,y,w,h)子矩形,以便(x,y)源像素显示为(0,0)dest像素。我很难决定哪些gazillion超载做到这一点。现在我的代码看起来是这样的,这显然是行不通的:我应该使用哪个Gdiplus :: Graphics :: DrawImage函数?
auto_ptr<Gdiplus::Graphics> g(Gdiplus::Graphics::FromHDC(pDC->GetSafeHdc()));
g->DrawImage(png, r.top, r.bottom, r.Width(), r.Height());
g->Flush();
因为(X,Y)源像素显示为(X,Y)目标像素,它不工作,而我想它显示为(0,0)目标像素。源矩形和目标矩形应具有相同的大小,但偏移量不同,而不是相同的偏移量。
[编辑] Nevermind,我发现我需要的重载函数。打开我不得不添加的是前面的目标(x,y)偏移量和最后的UnitPixel。
auto_ptr<Gdiplus::Graphics> g(Gdiplus::Graphics::FromHDC(pDC->GetSafeHdc()));
g->DrawImage(png, 0, 0, r.left, r.top, r.Width(), r.Height(), Gdiplus::UnitPixel);
g->Flush();
我不确定gdiplus,但在类似的情况下,我想你需要通过PNG的宽度和高度,而不是r的。还要确保图像符合可用的矩形。 – sinek 2011-02-18 15:38:47
r有宽度/高度。它是在我粘贴的代码之前完成的。 – sashoalm 2011-02-18 15:40:53