如何將類似於位圖的結構轉換爲HDC?如何將gdi +類似於位圖的結構轉換爲HDC?
我現在正在用C++編寫圖像處理程序,gdi。
如果我有HDC。 我可以通過下面的代碼在gdi上繪製任何我喜歡的東西。
// HDC is handy.
HDC dc;
dc.DrawXXX // I can draw using gdi method.
Graphics gr(dc); // now I can also draw on the dc using gdi+ method.
我的應用程序基於FreeImage。 我製作的fipImage。 (如位圖使用的數據結構)
但是如果我想借鑑fipWinImage,現在我要複製fipWinImageto位圖,然後繪製的位圖,最後將位圖再次轉換成fipImage,這是時花費時間和內存comsuming 。
轉換fipImage爲位圖 - >對位圖繪製 - >轉換位圖fipWinImage
fipWinImage imagefip;
Bitmap* tempImg = new Bitmap(imagefip->GetWidth(), imagefip.GetHeigt(), PixelFormat24bppRGB); // memory comsuming is image is large
Graphics *pGr = Graphics::FromImage(tempImg);
HDC dc = pGr->GetHDC();
RECT rec;
rec.left = 0;
rec.top = 0;
rec.right = imagefip.GetWidth();
rec.bottom = imagefip.GetHeight();
fipImage.draw(dc, rec); // using stretchdibits()
pGr->ReleaseHDC(dc);
Graphics gr(tempImg);
HDC dc = gr.GetHDC(); // Get an Hdc, draw using gdi method
gr.ReleaseHDC(tempDC); //
gr.drawXXX // Draw using gdi+ method.
fipWinImage fipImg; // final result fipWinImage.
HBITMAP temp;
Color color;
tempImg->GetHBITMAP(color, &temp);
fipImg->copyFromBitmap(temp);
我想直接從fipImage構建一個HDC。並直接在fipWinImage上畫圖 我該怎麼做?