在Android中,我们可以matrix.setScale(-1, 1);
到 FLIP_HORIZONTAL 一张图片。我尝试在delphi下做同样的事情:
aMatrix := Canvas.Matrix * TMatrix.CreateScaling(-1, 1);
Canvas.SetMatrix(aMatrix);
但是它不起作用:(我错过了什么?我怎么能在delphi中使用FLIP_HORIZONTAL图像(在画布内部,所以用矩阵播放)
答案 0 :(得分:0)
我找到了:
aMatrixRotationCenter.X := (width / 2) + Canvas.Matrix.m31;
aMatrixRotationCenter.Y := (height / 2) + Canvas.Matrix.m32;
aMatrix := Canvas.Matrix * TMatrix.CreateTranslation(-aMatrixRotationCenter.X,-aMatrixRotationCenter.Y);
aMatrix := aMatrix * TMatrix.CreateScaling(-1, 1); // matrix.setScale(-1, 1);
aMatrix := aMatrix * TMatrix.CreateTranslation(aMatrixRotationCenter.X,aMatrixRotationCenter.Y);
Canvas.SetMatrix(aMatrix);