На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

XIMAGEDESC - получение изображения

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 4 След.
RSS
XIMAGEDESC - получение изображения
 
Хорошо. Сделаю Вам еще один пример Я все равно получаю "белое" изображение))
 
Добрый. С учетом Ваших рекомендаций. Новый пример:
https://disk.yandex.ru/d/JxN03tag9GkVeQ

Изображение так же не получается.
Код
 public static XIMAGEDESC CreateXImage(int Heiht, int Width)
    {
        var hMap = mapOpenDataUn(@"reg_russia.sitx", 0);
        var bitmapHandle = mapCreateImageEx(Width, Heiht);
        mapSetViewType(hMap, 6);

        // Описание изображение
        var imageInfo = new XIMAGEDESC()
        { Depth = 32, Width = Width, Height = Heiht, CellSize = 32 / 8 };

        imageInfo.RowSize = imageInfo.CellSize * imageInfo.Width;
        var size = GetSize(imageInfo);

        // Определяем ссылку на массив
        var pointer = Marshal.AllocHGlobal(size);
        imageInfo.Point = pointer;

        // Размер изображения
        var rectInfo = new RECT() { left = 0, right = imageInfo.Width, bottom = imageInfo.Height, top = 0 };
        var pointInfo = new POINT() { x = 0, y = 0 };

        // Связать изображение с картой
        mapDrawImageMap(bitmapHandle, hMap, ref rectInfo, ref pointInfo);

        // Загрузить изображение
        mapViewImageToXImage(bitmapHandle, ref imageInfo, ref rectInfo, ref pointInfo);

        return imageInfo;
    }

Полученный файл (2.bmp):
Код
var info = CreateXImage(height, width);
            var bytes = GetBytes(info);
            var image1 = ToBitmap(info, bytes);
            image1.Save("2.bmp");

Пуст. В нем нет изображения карты.
 
Цитата
Alexander Volovikov написал:
Пуст. В нем нет изображения карты.

Не факт. Возможно, это и есть изображение карты, только без объектов.
Вы выбрали для теста фрагмент в левом верхнем углу карты 200 на 300 пикселей. Вряд ли в базовом масштабе, в котором карты открывается по умолчанию, в этот фрагмент попадет хотя бы один объект.

 
Сделал небольшой пример на C# с сохранением изображения в *.bmp

Фрагмент карты Москвы (из примеров данных GTK Active), сохраненный через XImage:
 
Цитата
Денис Вицко написал:
Сделал небольшой пример на C# с сохранением изображения в *.bmp

Фрагмент карты Москвы (из примеров данных GTK Active), сохраненный через XImage:
Огромное спасибо! Получается, что изначально все верно убыло сделано. Конечно, у меня нет под рукой другого инструмента, чтобы сравнивать. Спасибо, еще раз.
 
Цитата
Alexander Volovikov написал:
Получается, что изначально все верно убыло сделано.

Нет, не всё.
Изначально было упущено заполнение изображения в HIMAGE.
И сейчас до сих пор у Вас в примере задан стандарт вызова API как CDECL.

Как задавать габариты и смещения изображения (например, при скроллинге или масштабировании) - смотрите в примере на Qt.

Цитата
Alexander Volovikov написал:
Конечно, у меня нет под рукой другого инструмента, чтобы сравнивать.

Желательно пользоваться какими-то настольными ГИС из наших продуктов, чтобы как минимум контролировать данные и сверять работу своего разрабатываемого приложения.

Самый недорогой вариант - ГИС Панорама-Мини (на данный момент всего 2400р).

Любой продукт, представленный в разделе Скачать Вы можете использовать бесплатно и без приобретения лицензии для ознакомления на следующих условиях.
 
Добрый. Под Linux Ваш пример не работает. Получаю - пустое изображение. Код взят из Вашего примера.
https://disk.yandex.ru/d/ErzT5rdvOSgGcA


Изменено: Денис Вицко - 11.07.2022 08:56:05 (исправил вставку картинок)
 
Карты Moskow.sitx не нашел в поставке. Заменил на military.sit
Изменено: Alexander Volovikov - 11.07.2022 08:40:39
 
Цитата
Alexander Volovikov написал:
Карты Moskow.sitx не нашел в поставке. Заменил на military.sitx

Во-первых, указанная карта есть в самом примере - см. \bin\x64\Debug\moskow.sitx

Во-вторых, данная карта имеется и в инсталляции GTK14 (\GisTool14\Example\data\moscow\moskow.sit), и в в инсталляции GTK14 Active (\GisToolActive14\Example\data\moscow\moskow.sitx).
Снова возникает вопрос, какие версии каких инструментариев Вы используете?

В-третьих, Вы с картой military.sitx в Windows получили изображение? Карта military.sitx не имеет объектов в верхнем левом углу, при определенных параметрах экрана и масштабе отображения карты очень велик шанс того, что пустая картинка на выходе - это правильный результат, так как объектов нет.
Поэтому для Вас в пример я и добавил карту Moskow.sitx, у которой в запрашиваемом фрагменте объекты есть всегда.

PS
Зачем добавлять карты в проект?
 
Под Windows с другой картой, так же, Ваш пример , к сожалению, не работает. Я установил размеры, значительно больше. Картинка:
Изменено: Денис Вицко - 11.07.2022 09:02:33 (исправил вставку картинок)
Страницы: Пред. 1 2 3 4 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности