Всем привет!
Столкнулся с проблемой при "растягивании" битмапов :
hdcSrc - hdc источника данных для картинки
....
HDC hdcDestI = CreateCompatibleDC(hdcSrc);
HBITMAP hbmOutput = CreateCompatibleBitmap(hdcSrc,nWidthSrc,nHeightSrc);
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcDestI,hbmOutput);
int padding = 0;
while ( (nWidthDest * 3 + padding) % 4 != 0) padding++;
BITMAPINFO bmi;
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
int res1 = GetDIBits(hdcDestI,hbmOutput,0,0,NULL,&bmi,DIB_RGB_COLORS);
bmi.bmiHeader.biWidth = nWidthSrc;
bmi.bmiHeader.biHeight = nHeightSrc;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biBitCount = 24;
bmi.bmiHeader.biCompression = 0;
bmi.bmiHeader.biSizeImage = nHeightSrc*(nWidthSrc*3 + padding);
bmi.bmiHeader.biXPelsPerMeter = 0;
bmi.bmiHeader.biYPelsPerMeter = 0;
bmi.bmiHeader.biClrUsed = 0;
bmi.bmiHeader.biClrImportant = 0;
void* scanlines = new unsigned char[nHeightSrc*(nWidthSrc*3+padding)];
int res = GetDIBits(hdcDestI,hbmOutput,0,nHeightDest,scanlines,&bmi,DIB_RGB_COLORS);
res = StretchDIBits(MyCompatibleDC,nXOriginDest,nYOriginDest,nWidthDest,nHeightDest,nXOriginSrc,nYOriginSrc,nWidthSrc,nHeightSrc,scanlines,&bmi,DIB_RGB_COLORS,SRCCOPY);
SelectObject(hdcDestI,hbmOld);
DeleteObject(hbmOutput);
DeleteDC(hdcDestI);
После сохранения MyCompatibleDC в файл получаю ЧЁРНЫЙ квадрат...почему так может быть,где накосячил? Оригинальный контекст hdcSrc валидный...