(x, y) 원본 픽셀이 (0,0) 대상 픽셀로 나타나도록 src에서 dest로 (x, y, w, h) 부 직사각형을 붙여 넣기를 원합니다. 나는 과다한 오버로드 중 어느 것이 이것을 하는지를 결정하는 데 어려움을 겪고있다. 지금 내 코드는 분명히 작동하지 않는이, 다음과 같습니다어떤 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) 목적지 픽셀로 나타납니다. 원점과 목적지 구형의 사이즈는 같지만, 오프셋 (offset)는 같게하지 않으면 안됩니다.
[편집] 절대로, 내가 필요로하는 오버로드 된 기능을 찾지 못했습니다. 턴에 추가 된 것은 목적지 (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에 대해 잘 모르겠지만 유사한 경우에는 r 대신 png의 너비와 높이를 전달해야한다고 생각합니다. 또한 이미지가 사용 가능한 rect에 맞는지 확인하십시오. – sinek
r의 너비/높이가 png입니다. 붙여 넣기 전에 코드가 완성되었습니다. – sashoalm
제목에서 "해결 된"태그를 제거했습니다. 해결책을 직접 찾았으므로 자신의 질문에 대한 답변으로 게시하고 받아 들여야합니다. 그러면 기본 제공 메커니즘을 사용하여 질문을 표시하는 방식입니다 사이트에서 제공하는 답변. 그렇게하기위한 배지가 있다고 생각합니다. –