图片变换【Matrix】矩阵 简介
Matrix矩阵介绍
- MSCALE_X = 0; X缩放
- MSKEW_X = 1; X错切
- MTRANS_X = 2; X移动
- MSKEW_Y = 3; Y错切
- MSCALE_Y = 4; Y缩放
- MTRANS_Y = 5; Y移动
- MPERSP_0 = 6; 透视,透视就是观察的角度变化了。导致投射到平面上的二维图像变化了。
- MPERSP_1 = 7; 透视
- MPERSP_2 = 8; 透视
关于错切


操作示例
常用API
- public Matrix():Create an identity matrix 单位矩阵
- public Matrix(Matrix src):根据提供的矩阵创建一个新的矩阵。Create a matrix that is a (deep) copy of src
- set(Matrix src):复制。(deep) copy the src matrix into this matrix.
- setValues(float[]):用指定的值进行初始化
- getValues(float[]):通过把拿到的矩阵值赋给传入的数组。Copy 9 values from the matrix into the array.
- reset:重置矩阵为单位矩阵。Set the matrix to identity
- invert(Matrix inverse):反转、倒置。如果能反转就返回true并将反转后的值写入inverse,否则返回false。【当前矩阵*inverse=单位矩阵】
- setTranslate(float dx,float dy):控制Matrix进行平移。右下为正
- setSkew(float kx,float ky):控制Matrix以(0,0)为中心进行错切,kx、ky为X、Y方向上的比例
- setRotate(float degrees):控制Matrix以(0,0)为中心进行depress角度的旋转,顺时针为正
- setSinCos(float sinValue, float cosValue):不指定旋转角度,而是指定旋转角度对应的sin和cos值,比如,向右旋转90°时,对应的sin值为sin90°=1,对应的con值为cos90°=0。不指定中心点时的中心点为(0,0)。Set the matrix to rotate by the specified指定的 sine and cosine values, with a pivot中心点 point at (px, py).
- setScale(float sx,float sy):设置Matrix以(0,0)为中心进行缩放,sx、sy为X、Y方向上的缩放比例。如果为负,那么会将该图像绘制到坐标系统的负值空间
- 除平移变换外,旋转变换、缩放变换和错切变换都可以围绕一个中心点来进行,如果不指定,在默认情况下是围绕(0, 0)来进行相应的变换的。
- 以上的set方法(除了setSinCos方法),均有对应的post和pre方法。其中pre表示在队头插入一个方法(相当于矩阵中的右乘),post表示在队尾插入一个方法(相当于矩阵中的左乘),而set表示把当前队列清空,并且总是位于队列的最中间位置。
- 当执行了一次set后,前面所有的set、pre、post都将清空,后续的pre方法总是插入到set前部的队列的最前面,post方法总是插入到set后部的队列的最后面。
- Matrix调用一系列set、pre、post方法时,可视为将这些方法插入到一个队列,最后按照队列中从头至尾的顺序调用执行。
- isIdentity():判断是否是单位矩阵
- isAffine():判断是否是仿射矩阵,只要最后一行是0,0,1则是仿射矩阵。
- rectStaysRect():判断该矩阵是否可以将一个矩形依然变换为一个矩形。当矩阵是单位矩阵,或者只进行平移,缩放,以及旋转90度的倍数的时候,返回true。Returns true if will map a rectangle to another rectangle.
- setConcat(Matrix a, Matrix b):将当前matrix的值变为a和b的乘积。Set the matrix to the concatenation关联 of the two specified matrices and return true.
Matrix方法表
图片变换【Matrix】矩阵 简介的更多相关文章
- 图片变换 矩阵 Bitmap Matrix
Matrix矩阵介绍 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,内部就是个一维数组,内部有9个元素:可以通过setValues( float[])进 ...
- 【CSS3】 理解CSS3 transform中的Matrix(矩阵)
理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...
- 理解CSS3 transform中的Matrix(矩阵)
一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...
- 理解CSS3 transform中的Matrix(矩阵)——张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...
- [Android] 使用Matrix矩阵类对图像进行缩放、旋转、对照度、亮度处理
前一篇文章讲述了Android拍照.截图.保存并显示在ImageView控件中,该篇文章继续讲述Android图像处理技术,主要操作包含:通过打开相冊里的图片,使用Matrix对图像进行缩放. ...
- 前端matrix矩阵的变化
css3 transform中的matrix矩阵 CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform), ...
- css3 transform中的matrix矩阵
CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示 ...
- Android图片加载框架最全解析(五),Glide强大的图片变换功能
大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...
- Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作)
Leetcode 566. Reshape the Matrix 矩阵变形(数组,模拟,矩阵操作) 题目描述 在MATLAB中,reshape是一个非常有用的函数,它可以将矩阵变为另一种形状且保持数据 ...
随机推荐
- laravel windows安装(composer)
1.安装composer参考windows 安装tp5 composer方式 2.先配置好本地虚拟域名,在cmd里面切换到网站根目录 ... 3.安装成功之后,在浏览器输入已配置的虚拟域名我的是,la ...
- thinkjs项目中使用mongoose需要注意的地方
原文链接thinkjs项目中使用mongoose需要注意的地方 由于thinkjs不支持mongodb的关联模型查询,所以我不得不使用mongoose这个第三方odm. 我有两个选择,一是像我在exp ...
- ubuntu下 pycharm使用andcoda下的tensorflow
在ubuntu中 tensorflow是安装在andconda里的一个虚拟环境中,他就相当于一个容器,将tensorflow的整个环境去模拟隔离出来,因为我们直接使用andconda库去作为pycha ...
- POJ1284 Primitive Roots [欧拉函数,原根]
题目传送门 Primitive Roots Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5434 Accepted: ...
- Android 之JSON数据解析
(以下基本都是郭霖大神<第一行代码>中的知识) JSON数据与xml相比,优势在于体积更小,传输所需的流量少.但是缺点也很明显,就是语义性较差. 下面是一组JSON格式的数据. [{&qu ...
- Django+Nginx+uwsgi搭建自己的博客(五)
在上一篇博文中,向大家介绍了Users App和Index的前端部分的实现,以及前端与Django的通信部分.至此,我们的博客已经具备一个简单的雏形,可以将其部署在本地的服务器上了.目前较为流行的we ...
- TensorFlow——module 'tensorflow' has no attribute 'xxx'
tf.sub()更改为tf.subtract() tf.mul()更改为tf.multiply() tf.types.float32更改为tf.float32 tf.pact()更改为tf.stact ...
- zabbix-python api(一)
获取zabbix token #!/usr/bin/env python #coding=utf-8 import json import urllib2 def Gettoken(server_ip ...
- PHP之 xampp 安装环境
1.安装XAMPP 需要注意以下几点: (1):必须已管理员身份运行: (2):先点击安装Apache和mysql(如果apche端口被占用,先停止服务里面的apche服务) (3):别忘记切换PH ...
- VS2015常用配置
一.调用控制台: 在VS中使用opencv或者QT过程中,完成编程后, 运行发现没有控制台窗口, 比如我们用Qt编写的界面软件, 又想看到我们在代码中添加的打印日志信息,这个时候加上控制台窗口就能实现 ...