자기개발/C++
C++ - 이미지 생성, 주소값으로 전달 후 저장
pi92
2021. 9. 17. 09:10
#define _AFXDLL
#include <afxwin.h>
#include <atlimage.h>
int main(void)
{
int w = 50;
int h = 30;
LPBYTE pBits = nullptr;
pBits = new BYTE[w * h];
for (int i = 0; i < h; i++)
{
for (int j = 0; j < w; j++)
{
pBits[i*w + j] = j;
}
}
CImage image;
image.Create(w,h,8);
RGBQUAD rgbQuad[256];
for (int i = 0; i < 256; i++) {
rgbQuad[i] = { BYTE(i),BYTE(i),BYTE(i),0 };
}
image.SetColorTable(0, 255, rgbQuad);
LPBYTE m_pBits = (LPBYTE)image.GetBits();
for (int i = 0; i < h; i++) {
LPBYTE pRow = m_pBits + (i*image.GetPitch());
memcpy(pRow, pBits + (i*w), w);
}
image.Save(_T("temp1.bmp"));
image.Destroy();
delete[] pBits;
pBits = nullptr;
_CrtDumpMemoryLeaks();
return 0;
}