我試圖獲得AtlImage
的字節緩衝區。類型爲CImage
此代碼將只是規模從路徑szFilePath
這裏裝載的圖像,它是:從CImage獲取緩衝區數組AtlImage
int iNewWidth = 60;
int iNewHeight = 60;
CImage image;
image.Load(szFilePath);
CDC *screenDC = GetDC();
CDC *pMDC = new CDC;
pMDC->CreateCompatibleDC(screenDC);
CBitmap *pb = new CBitmap;
pb->CreateCompatibleBitmap(screenDC, iNewWidth, iNewHeight);
CBitmap *pob = pMDC->SelectObject(pb);
image.StretchBlt(pMDC->m_hDC, 0, 0, iNewWidth, iNewHeight, 0, 0, image.GetWidth(), image.GetHeight(), SRCCOPY);
pMDC->SelectObject(pob);
CImage new_image;
new_image.Attach((HBITMAP)(*pb));
int bytesnbr = abs(new_image.GetPitch()) * new_image.GetHeight();
mSize = bytesnbr;
mBuffer = new BYTE[bytesnbr];
DWORD dwValue = pob->GetBitmapBits(bytesnbr, mBuffer);
new_image.Detach();
ReleaseDC(screenDC);
我發現了一個異常isDibSection()
我想獲得緩衝對它進行編碼以base64。 也許是有另一種方式......無論如何,我需要縮放圖像。 感謝您的幫助
你是什麼意思「_我得到異常'isDibSection()'_」?我沒有看到你的代碼中提到的那個名字的功能。例外發生在哪裏? – Rook
此異常是從atlimage.h當我打電話GetPitch – DevAndroid
爲什麼不使用保存方法與提供了CreateStreamOnHGlobal – xMRi