android图像变换之Matrix

Matrix中文意思是矩阵,在android中Matrix代表的就是一个3x3的矩阵,Matrix主要用在图片处理上,它可以对图片进行缩放、平移、旋转等,下面逐一分析Matrix的各个函数。

Matrix():构造函数,新建一个标准的矩阵,也就是3x3的单位矩阵

Matrix(Matrix m):构造函数,创建一个m为样本的矩阵,若m为null则创建一个标准矩阵

void getValues(float[] values):将矩阵的值存入values数组中

boolean invert(Matrix inverse):若矩阵的逆矩阵存在,将逆矩阵赋值给inverse,并返回true,否则返回false

boolean isIdentity():判断该矩阵是否为标准矩阵

void mapPoints(float[] dst,int dstIndex,float[] src,int srcIndex,int pointCount):将matrix作用于二维点src,并将变化后的点存入dst中
      dst:(x,y)表示点的坐标
      src:同上
      dtsIndex:第一个dst点的索引
      srcIndex:第一个src点的索引
      pointCount:点个总数

void mapPoints(float[] dst,float[] src):将matrix作用于二维点src,并将变化后的点存入dst中

void mapPoints(float[] pts):将matrix作用于pts,并将变化后的点写入pts中,pts=[x0,y0,x1,y1......]包含多个点

float mapRadius(float radius):将matrix作用于半径为radius的圆,并返回作用后的圆半径

boolean mapRect(RectF dst,RectF src):将matrix作用于矩形src,并将改变后的矩形存到dst中,返回rectStaysRect()的结果

boolean mapRect(Rectf rect):将matrix作用于矩形rect,并将改变后的矩形存到rect中,返回rectStaysRect()的结果

void mapVectors(float[] dst,int dstIndex,float[] src,int srcIndex,int pointCount):将matrix作用于二维向量src,并将改变后的向量存入dst中,dstIndex表示第一个dst向量的索引,pointCount为向量的总个数

void mapVectors(float[] dst,float[] src):将matrix作用于向量src,并将改变后的向量存入dst中

void mapVectors(float[] vecs):将matrix作用于vecs,并将改变后的结果存入vecs中,vecs的形式为{x0,y0,x1,y1......}

void postConcat(Matrix other):other左乘matrix,即matrix=other*matrix

void postRotate(float degrees):旋转矩阵左乘matrix,即matrix=R(degrees)*matrix

void postRotate(float degrees,float dx,float dy):matrix=R(degrees,dx,dy)*matrix

void postTranslate(float dx,float dy):matrix=T(dx,dy)*matrix

void postScale(float sx,float sy):matrix=S(sx,sy)*matrix

void postScale(float sx,float sy,float dx,float dy):matrix=S(sx,sy,dx,dy)*matrix

void postSkew(float kx,float ky):matrix=K(kx,ky)*matrix

void postSkew(float kx,float ky.float dx,float dy):matrix=K(kx,ky,dx,dy)*matrix

void preConcat(Metrix other):other右乘matrix,即matrix=matrix*other

preRotate,preTranslate,preScale,preSkew:将对应的post的左乘改为右乘即可

boolean rectStaysRect():如果matrix作用于一个矩形得到的还是一个矩形就返回true,否则返回false

void reset():使matrix成为标准矩阵

void setConcat(matrix other):将matrix设置为other,即matrix=other

void setRotate,setScale,setTranslate与post,pre的区别在于,set要先reset()再执行左乘(右乘也一样)

void setRecTtoRect(RectF src,RectF dst,Matrix.ScaleToFit stf):matrix作用于src能得到矩形dst则返回true,否则返回false

void setValues(float[] values):将数组中的值赋值给matrix


你可能感兴趣的:(android图像变换之Matrix)