Сохранение окна карты в файл изображения
Сохранение окна карты в файл изображения
При сохранении карты в файл изображения с помощью метода "to_image" не учитывается толщина линейных объектов и размер точечных (любые отображаются одинаковыми). При создании файла изображения с помощью команды меню "Экспорт окна в растр" все выполняется корректно.
Re: Сохранение окна карты в файл изображения
Я проверил экспорт точечных объектов разных размеров.
Проблем не заметил.
Исходный файл:
Проблем не заметил.
Исходный файл:
Code: Select all
mv = axipy.view_manager.active
image = mv.map.to_image(mv.device_rect.width, mv.device_rect.height, mv.coordsystem, mv.scene_rect)
image.save(r'c:\tmp\img.png')
Re: Сохранение окна карты в файл изображения
Да, Александр, Вы правы. Действительно, проблему я сформулировал неверно.
Однако, мою проблему это не решает. Если я беру размер выходного растра не в координатах окна, а значительно больше, то результат меняется. С теми же размерами, но через меню "Экспорт окна в растр" я получаю такую же картинку, как на экране. PDF также нормальный. И в отчет для печать вставляется корректно. Что-то здесь не по моим мозгам...
Файлы с картинками и пояснением отправлю по почте, они слишком громоздкие.
Однако, мою проблему это не решает. Если я беру размер выходного растра не в координатах окна, а значительно больше, то результат меняется. С теми же размерами, но через меню "Экспорт окна в растр" я получаю такую же картинку, как на экране. PDF также нормальный. И в отчет для печать вставляется корректно. Что-то здесь не по моим мозгам...
Файлы с картинками и пояснением отправлю по почте, они слишком громоздкие.
Re: Сохранение окна карты в файл изображения
На данный момент метод Map.to_image() позволяет экспортировать карту с текущим разрешением экрана и нет возможности задавать разрешение для экспорта. Толщина линий и размеры символов зависят от этого разрешения.
Параметры width и height определяют размеры окна. Если вы увеличиваете размер окна, не меняя размеры ограничивающего прямоугольника карты, это приводит к изменению масштаба, так как разрешение остается неизменным.
Возможность задать разрешение есть у функции Map.draw()
Параметры width и height определяют размеры окна. Если вы увеличиваете размер окна, не меняя размеры ограничивающего прямоугольника карты, это приводит к изменению масштаба, так как разрешение остается неизменным.
Возможность задать разрешение есть у функции Map.draw()
Code: Select all
import axipy
import PySide2.QtGui as Qg
from PySide2.QtCore import Qt
k = 10 # во сколько раз увеличить картинку в пикселях
mv = axipy.view_manager.active
image = Qg.QImage(int(mv.device_rect.width * k), int(mv.device_rect.height * k), Qg.QImage.Format_ARGB32)
context = axipy.Context(Qg.QPainter(image))
context.coordsystem = mv.coordsystem
context.rect = mv.scene_rect
context.dpi = k * 96
mv.map.draw(context)
image.save(r'c:\tmp\img2.png')
Re: Сохранение окна карты в файл изображения
Теперь все нормально. Александр, спасибо!