Я попытался использовать пример из руководства программиста, но mapPaintToXImage не заполняет массив и возвращает 0.
Есть ли связь с тем, что я загружаю libmapacces.so динамически? Остальные методы отрабатывают нормально, ну как, они возвращают не 0.
Я пытаюсь выгрузить картинку, размером с главное окно, может в реализации есть косяк?
Моя реализация:
Есть ли связь с тем, что я загружаю libmapacces.so динамически? Остальные методы отрабатывают нормально, ну как, они возвращают не 0.
Я пытаюсь выгрузить картинку, размером с главное окно, может в реализации есть косяк?
Моя реализация:
Код |
---|
void MainFrame::LoadPic() { wxPoint _point; _point.x = 0; _point.y = 0; long _viewRes = _mapSetViewScale_(hMap, (long*)_point.x, (long*)_point.y, float(200000)); wxRect _mainWinRect = this->GetRect(); RECT rectDraw; rectDraw.left = _mainWinRect.x; rectDraw.top = _mainWinRect.y; rectDraw.right = _mainWinRect.x + _mainWinRect.width; rectDraw.bottom = _mainWinRect.y + _mainWinRect.height; XIMAGEDESC ximagedesc; ximagedesc.Width = _mainWinRect.width; // Ширина строки в пикселах ximagedesc.Height = _mainWinRect.height; // Число строк ximagedesc.Depth = _mapGetMapScreenDepth_(); // Размер элемента в битах ximagedesc.CellSize = ximagedesc.Depth / 8; // Размер элемента(пиксела) в байтах ximagedesc.RowSize = _mainWinRect.width * ximagedesc.CellSize; // Ширина строки в байтах long size = _mainWinRect.height * ximagedesc.RowSize; char* lpBits = NULL; lpBits = new char[size]; memset(lpBits, 0x0, size); ximagedesc.Point = lpBits; // Адрес начала области пикселов long res = _mapPaintToXImage_(hMap, &ximagedesc, 0, 0, &rectDraw); } |