Добрый день!
Пишу на C#
Проблема с функцией mapGetRstFrame.
Написал автоматизированную обработку растровых изображения и заметил что местами появляются точки которых не должно быть. Залил с помощью mapPutRstFrame весь растр. Набросал тестовый код:
int bwidth = (int)Math.Round(bframe.width / 8.0); // ширина фрейма в байтах
int left = 8 * (int)(bframe.left / 8.0); // выравнивание на границу байта
IntPtr bits = Marshal.AllocHGlobal(bcount);
long n = FMapAPI.mapGetRstFrame(hMap, msrc, bits, left, bframe.top, bframe.width, bframe.height, bwidth);
Marshal.Copy(bits, bsrc, 0, bcount);
//Marshal.FreeHGlobal(bits);
// отправляем в pictureBox
gur.DraweFrom1bitArray(picBox, bsrc, bframe.width, bframe.height, Color.Blue, Color.White);
//bits = Marshal.AllocHGlobal(bsrc.Length);
//Marshal.Copy(bsrc, 0, bits, bsrc.Length);
FMapAPI.mapPutRstFrame(hMap, msrc, bits, left, bframe.top, bframe.width, bframe.height, 1, bwidth);
FMapAPI.mapUpdateRstDuplicates(hMap, msrc);
FMapAPI.mapSaveRst(hMap, msrc);
Marshal.FreeHGlobal(bits);
mvMap.Repaint();
Для проверки отправляем считанное изображение в pictureBox (на картинке слева синяя). Растр 1 бит на элемент.
По изображению идут точки. Что не так?