如何使用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