ich habe einen Viewer programmiert, der auf einem QWidget ein Bild malt, welches als QImage vorliegt. Jetzt sollen damit auch Animationen dargestellt werden, das heißt man möchte auf das Bild einzoomen, wobei der Zoomvorgang animiert wird.
Ich bewerkstellige das ganze momentan so:
Zuerst wird das gewünschte (nicht veränderbare) Bild auf ein QImage gemalt, dann erstelle ich einen QPainter für das zu bemalenden QWidget , und verändere für jedes Bild bloß die Transformationsmatrix des Painters, und zeichne dann einfach das Bild. So lässt sich mit Hilfe eines QTimers leicht eine Zoom-Fahrt bewerkstelligen, sowie Panning mit dem Mauszeiger.
Code: Alles auswählen
QPainter painter(this);
m_Matrix.translate (m_Trans.x(), m_Trans.y());
m_Matrix.scale ( m_ScaleFactor, m_ScaleFactor );
painter.setMatrix (m_Matrix);
painter.drawImage (QPointF::QPointF(0.,0.),m_pRenderSource);
Ich bekomme bei einem großen QFrame, sowie einem recht vollgemaltem QImage arge Performanceprobleme. Das ganze artet bei Vollbild schnell in eine Ruckelpartie aus. Gibt es eine bessere Möglichkeit ein statisches Bild schnell mit unterschiedlichen Transformationsmatrizen zu zeichnen?
Viele Grüße,
Mamba
[/list]