Beispiel #1
0
    def big_marker_preview_image(symbol: QgsSymbol,
                                 expression_context: Optional[QgsExpressionContext] = None) -> QImage:
        """
        Generate a big symbol preview image for a marker
        """
        preview = QImage(QSize(100, 100), QImage.Format_ARGB32_Premultiplied)
        preview.fill(0)

        p = QPainter(preview)
        p.setRenderHint(QPainter.Antialiasing)
        p.translate(0.5, 0.5)

        context = QgsRenderContext.fromQPainter(p)
        try:
            context.setFlag(QgsRenderContext.RenderSymbolPreview)
        except AttributeError:
            pass

        if expression_context:
            context.setExpressionContext(expression_context)

        try:
            context.setIsGuiPreview(True)
        except AttributeError:
            pass

        symbol.startRender(context)
        symbol.renderPoint(QPointF(50, 50), None, context)
        symbol.stopRender(context)

        return preview