怎么把bmp dc顺时针旋转90度?
hBkDC-源dc,RhBkC,目的dc,方法1可以实现,但是速度慢,方法2快但是旋转后图形失真,还有其他高效的方法吗
方法1:
RhBkDC=CreateCompatibleDC(hThisDC);
SelectObject(RhBkDC, CreateCompatibleBitmap(RhBkDC,384,640));
DWORD tick;
tick=GetTickCount();
for( int I = 0 ;I<640;I++)
{
for(int J = 0 ;J<384;J++)
{
BitBlt(RhBkDC, J, I , 1, 1, hBkDC,I, 384-J-1, SRCCOPY);
}
}
方法2:
CPoint Pt[3];
Pt[0].x = 384;
Pt[0].y = 0;
Pt[1].x = 384;
Pt[1].y = 640;
Pt[2].x = 0;
Pt[2].y = 0 ;
CBitmap bm;
ZeroMemory(&bm,sizeof(bm));
HDC RhBkDC=CreateCompatibleDC(hThisDC);
SelectObject(RhBkDC, CreateCompatibleBitmap(RhBkDC,384,640));
PlgBlt(RhBkDC, Pt, hBkDC, 0, 0, 640,384,bm, 0, 0); //翻转90度