Здравствуйте Аноним, Вы писали:
А>Ага, идея понятна, но тут возникла проблема с нижеприведённой функцией:
AF>>PVOID pBits;
AF>>HBITMAP hBitmap = CreateDIBSection(MainDC, pbmi, DIB_RGB_COLORS, &pBits, NULL, 0);
AF>>if (hBitmap == NULL)
AF>> ...;
А>Как раз дело в том, что она возвращает NULL.
А>С ошибкой: Неправильно задан параметр.
А>Возможно нельзя эту функцию использовать для сжатой BMP.
Нельзя. Тогда надо переопределить параметр сжатия в структуре BITMAPINFO, передаваемой на вход этой функции:
pbmi->bmiHeader.biWidth = Data.X2 - Data.X1;
pbmi->bmiHeader.biHeight = Data.Y2 - Data.Y1;
pbmi->bmiCompression = BI_RGB;
pbmi->bmiHeader.biSizeImage = 0;
Если в итоге надо получить опять же сжатое изображение, то нужно будет вызвать GetDIBits, она умеет генерировать RLE.