AtlImage
のバイトバッファを取得しようとしています。タイプは、このコードは、単にパスszFilePath
からロードされた画像を拡大縮小しますCImage
ここにあるさ: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);
私はBASE64でそれをエンコードするためのバッファを取得したいと思い例外isDibSection()
を取得しています。 別の方法があるかもしれません...とにかく、画像を拡大縮小する必要があります。 ありがとうございました
"isDibSection()' _ "という例外が発生しましたか?あなたのコードにその名前で言及されている関数は表示されません。例外はどこで発生するのですか? – Rook
この例外はGetPitchを呼び出すとatlimage.hからです – DevAndroid
CreateStreamOnHGlobalで作成されたIStreamを提供するSaveメソッドを使用しない理由 – xMRi