|
TImage에 buffer에 있는 이미지 데이터를 뿌려주려고 합니다.
그런데 이상한 점은 buffer의 width가 4의 배수인 경우에만 정상 출력되고
아닌 경우에는 틀어져서 나옵니다.
이유를 모르겠네요. 꼭 좀 가르쳐주세요.
m_bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
m_bmiHeader.biWidth = image_width;
m_bmiHeader.biHeight = image_height;
m_bmiHeader.biPlanes = 1;
m_bmiHeader.biBitCount = 24;
m_bmiHeader.biCompression = BI_RGB;
m_bmiHeader.biSizeImage = width * height * 3;
m_bmiHeader.biXPelsPerMeter = 0;
m_bmiHeader.biYPelsPerMeter = 0;
m_bmiHeader.biClrUsed = 0;
m_bmiHeader.biClrImportant = 0;
Image->Width = image_width;
Image->Height = image_height;
Image->Picture->Bitmap->Width = image_width;
Image->Picture->Bitmap->Height = image_height;
SetStretchBltMode(Image->Handle, COLORONCOLOR);
int nRtn = StretchDIBits( Image->Canvas->Handle,
0, 0, Image->Width, Image->Height,
0, 0, image_width, image_height,
image_buffer, (LPBITMAPINFO)&m_bmiHeader,
DIB_RGB_COLORS, SRCCOPY);
|