Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)

本文介绍了Android中如何使用Matrix进行图片的平移、旋转、缩放、错切和对称变换。讲解了Matrix矩阵变换的基本原理,并提供了相关代码示例,包括基于Bitmap的图像操作。通过自定义View并应用Matrix,可以实现各种图像效果。
摘要由CSDN通过智能技术生成

Android的Matrix利用数学原理实现图片平移、旋转等操作详解
  很庆幸自己的线性代数学的还可以,理解Matrix的矩阵变换完全没有问题。Matrix矩阵实现图片的平移旋转等操作涉及到线性代数问题,感兴趣它的具体实现的话可以参考一下上面的博客,非常详细,非常好。如果不想深究也可以简单的理解为BitMap的像素点通过某种方式(Matrix)移动了相应的位置,这样就实现了图片的变换。不管怎样,先学会如何使用它就可以了。
  注:我们所使用的Matrix变换必须有一个Bitmap基础,因此,代码中需要先获得Bitmap。

一、总体使用的简单展示

 平移变换

//参数:移动到的位置的放大倍数
matrix.postTranslate(mBitmapwidth*2,mBitmapheight*2);
canvas.drawBitmap(mbitmap,matrix, mpaintline);

旋转变换

        matrix.postRotate(180); 
        canvas.drawBitmap(mbitmap,matrix, mpaintline);

缩放变换

//参数:缩放倍数
matrix.postScale(2, 2);
canvas.drawBitmap(mbitmap,matrix, mpaintline);

错切变换

//x轴不变,y轴进行拉伸
matrix.postSkew(0, 1);  
canvas.drawBitmap(mbitmap,matrix, mpaintline);

对称(关于x轴对称 倒影)

float[] matrix_value=new float[]{
  1f,0f,0f,0f,-1f,0f,0f,0f,1f};      
        matrix.setValues(matrix_value); 
        canvas.drawBitmap(mbitmap,matrix, mpaintline);

对称(关于Y轴对称 镜像)

float[] matrix_value1=new float
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值