一,什么是Matrix
Matrix是一个3 * 3的矩阵,每个像素点表达了其坐标的X,Y信息。
处理每个像素点的计算方法
X1 = a * X + b * Y + c
Y1 = d * X + e * Y + f
L = g * X + h * Y + i
一般,g = h = 0 , i = 1,这时L = g * X + h * Y + i 恒成立,也就是L = i = 1
Matrix的初始化矩阵,对角线为1,其余为0
看不懂没关系,因为矩阵变换真的很麻烦,但是使用它来实现效果的代码很简单明了。
Matrix主要可以对图像做4种基本变换
Translate 平移变换
Rotate 旋转变换
Scale 缩放变换
Skew 错切变换
Matrix类中的方法,主要也是和这四个变换相关,只是对计算过程做了封装作用对象是Bitmap而
不是Canvas
二、Matrix实现图片的缩放
//固定宽高缩放图片
private static Bitmap getBitmapByWH(Bitmap bitmap,int width,int height){
int sourH=bitmap.getHeight();
int endH=sourH;
float scal=1;
if(endH>height){
//图片宽高大,就缩小
while(endH>height){
endH= (int) (sourH*scal);
scal-=