Как отключить сглаживание в экспорте QGIS (pyqgis) - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь сохранить макет печати как BMP в QGIS через код Python, но хочу включить сглаживание и не могу понять, как это сделать

def saveImage(self, layout, filename="defaultexport", extension=".bmp"):
    """Saves given layout as an image"""
    filefolder = get_save_location()
    filepath = os.path.join(filefolder, filename + extension)

    if not os.path.isdir(filefolder):
        os.makedirs(filefolder)


    exporter = QgsLayoutExporter(layout)
    context = QgsLayoutRenderContext(layout)
    context.setFlag(context.FlagAntialiasing, False)


    export_settings = exporter.ImageExportSettings()
    export_settings.generateWorldFile = False
    export_settings.dpi = 25
    export_settings.flags = context.FlagAntialiasing
    result = exporter.exportToImage(filepath, export_settings)

Это то, что у меня есть. Я понятия не имею, что я делаю с QgsLayoutRenderContext, но это единственная вещь, которая, казалось, могла это сделать. Сохранение вручную и поворот настройки AA в диалоге сохранения работает нормально, но мне нужно сделать это через pyqgis

1 Ответ

0 голосов
/ 31 марта 2019

Пересмотреть этот проект, зная еще кое-что из Python и PyQt5, было легко

    exporter = QgsLayoutExporter(layout)
    context = QgsLayoutRenderContext(layout)
    context.setFlag(context.FlagAntialiasing, False)

    export_settings = exporter.ImageExportSettings()
    export_settings.generateWorldFile = False
    export_settings.dpi = 25
    export_settings.flags = context.flags()
    result = exporter.exportToImage(self.filepath, export_settings)

Необходимо использовать context.flags ()

...