如何使用MFC在C++中旋转位图图像?我不想使用GDI。是否有可能通过只更改此代码中的x和y值?如何使用MFC在C++中旋转位图图像?
CBitmap img;
CDC dc;
BITMAP bmp;
img.LoadBitmapW(IDB_BITMAP1);
img.GetBitmap(&bmp);
CDC* pDC = this->GetDC();
dc.CreateCompatibleDC(pDC);
CBitmap* pOld = dc.SelectObject(&img);
for(int y = 0; y < bmp.bmHeight; y++)
{
for(int x = 0; x < bmp.bmWidth; x++)
{
COLORREF rgb = dc.GetPixel(x, y);
BYTE r = GetRValue(rgb);
BYTE g = GetGValue(rgb);
BYTE b = GetBValue(rgb);
dc.SetPixel(x, y, RGB(r,g,b));
}
}
pDC->BitBlt(200, 200, bmp.bmWidth, bmp.bmHeight, &dc, 0, 0, SRCCOPY);
dc.SelectObject(pOld);
请有人回复很快,因为这是工作的最后一天,明天是它的提交。
下一次添加作业标签如果它是一个家庭作业问题。 – 2010-06-28 04:41:24
鉴于此开始代码,以及问题:是否有可能。为什么不先尝试一下,看看如果你在不同的地方交换x和y会发生什么。你可能会学到些东西。 – Toad 2010-06-28 04:50:37
是的,我已经尝试了很多,并在图像中获得了许多变化,但不是旋转的图像。我想可能是我的逻辑不正确,所以我在这里问过。 – 2010-06-28 05:00:15