No transformation result with QImage transformed
Unsolved
General and Desktop
-
Hi,
I'm currently implementing a class that operates on Matrices based on QImage as described bellow. But even if I know from docs that Transformed returns a copy of the QImage, no transformation occurs.What is wrong with LineShift this please?
Matrix.cpp
MathMatrix::MathMatrix(const QString MName, const quint16 MCols, const quint16 MRows, const quint32 MColors): Name(MName),Cols(MCols),Rows(MRows),Colors( MColors) { WorkMatrix = new QImage(Cols,Rows,QImage::Format_RGB32); Name = MName; Cols= MCols ; Rows = MRows; Colors = MColors; Reset(); } void MathMatrix::LineShift( int Offset) { *WorkMatrix = WorkMatrix->transformed(QTransform().translate(0,Offset)) ; } void MathMatrix::Fill(uint Value) { WorkMatrix->fill(Value); } etc...
Matrix.h
class MathMatrix { private: QString Name ; quint16 Cols; quint16 Rows ; quint32 Colors ; QImage *WorkMatrix; public: MathMatrix(const QString MName="Matrix Name", const quint16 MCols=8 , const quint16 MRows=8, const quint32 MColors=3); ~MathMatrix(); QString getName() { return Name ;} quint16 getCols() { return Cols ;} quint16 getRows() { return Rows ;} quint32 getColors() { return Colors ;} void Fill(uint Value); void Fill(QColor NamedColor); void LineShift(int Offset); void TestMatrix(); };
This class is called like this :
ProjectMatrix::ProjectMatrix(const QString M_Name, const quint16 M_Cols, const quint16 M_Rows, const quint32 M_Colors) { MathMatrix ProjMatrix(M_Name,M_Cols,M_Rows,M_Colors); ProjMatrix.SetLine(1,0xFF000001) ; ProjMatrix.LineShift( 1); }