android图像编辑和处理(二)
来源:互联网 发布:淘宝取消订单有影响吗 编辑:程序博客网 时间:2024/05/22 03:19
1.输入矩阵:
Matrix矩阵类,当现有位图对象上进行绘制或从另一个位图对象创建某个位图时,可以使用该类。
Matrix矩阵类的每个数字都应用于图像上每个点的3个坐标(x,y或z)之一:
如:1 , 0 , 0,
0, 1, 0,
0, 0, 1
第一行:指定x坐标:x=1x+0y+0z;
第二行:指定y坐标:y=0x+1y+oz;
第三行:指定z坐标:z=0x+0y+1z;
Matrix matrix=new Matrix();matrix.setValues(new float[]{1,0.5f,0,0,1,0,0,0,1});canvas.drawBitmap(bmp, matrix, paint);copyPicture.setImageBitmap(alteredBitmap);在需要增加结果位图大小是可以设置:
alteredBitmap = Bitmap.createBitmap(bmp.getWidth()*2,bmp.getWidth(), bmp.getConfig());
2.Matrix类的方法
(1)旋转:
Matrix matrix=new Matrix();
//matrix.setRotate(15);/*旋转的角度,围绕默认点(0,0),正数顺时针旋转,负数逆时针旋转,默认点是图像左上角*/
matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋转
canvas.drawBitmap(bmp, matrix, paint);
(2)缩放:
matrix.setScale(1.5f, 1);//缩放,第一个参数x轴的缩放比例,第二个参数y轴的缩放比例。
(3)平移:
matrix.setTranslate(1.5f, -10);//平移,第一个参数x轴的移动数量,第二个参数y轴的移动数量。
(4)镜像:
matrix.setScale(-1, 1);
matrix.postTranslate(bmp.getWidth(), 0);//向右移动
(5)翻转:
matrix.setScale(1,-1);
matrix.postTranslate(0, bmp.getHeight());//向下移动
(6)绘制替代图像:
以前所使用的方法的缺点是图像会被截断,因为没有计算转换后的结果大小。解决方法:当初次创建位图对象时,应用Matrix对象而不是绘制到一个空的位图对象中。
通过这种方式无需再获得Canvas和Paint对象。缺点是不能再更改位图对象。
在Bitmap类中存在一个静态方法createBitmap.
Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);//参数不再说明。
示例:
Matrix matrix=new Matrix();matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋转Bitmap alteredBitmap=Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);
copyPicture.setImageBitmap(alteredBitmap);
- android图像编辑和处理(二)
- android图像编辑和处理(一)
- android图像编辑和处理(三)
- android图像编辑和处理(四)
- 【使用技巧】【图像编辑和处理】将GIF图缩放
- 【使用技巧】【图像编辑和处理】将多幅图片放到一块方便对比
- android 事件处理--onInterceptTouchEvent和onTouchEvent调用时序(二)
- Android群英传--绘图机制和处理技巧(二)
- 泊松图像编辑(Poisson image editing)
- 泊松图像编辑(Poisson image editing)
- 泊松图像编辑(Poisson image editing)
- Android图片处理(二)
- ubuntu下的截图和图像编辑软件推荐
- 基于Web的图像编辑实现方案(上)
- 基于Web的图像编辑实现方案(中)
- 图像编辑软件
- Android消息处理机制(二)
- 深入理解Android事件处理(二)
- 使用ArcGIS API for JavaScript实现类似ArcMap的图层控制面板Tab of Contents
- 数据结构之双向循环链表
- 欢迎使用CSDN-markdown编辑器
- 通过 wsdl 文件 创建webservice
- [ACMcoder] Let the Balloon Rise
- android图像编辑和处理(二)
- tomcat重启依然保持session有效(登录状态)
- linux如何给应用程序创建一个桌面启动图标
- 命令工具的清屏命令
- JSP九大内置对象的作用和用法总结
- <c:if>没有<c:else>解决方案
- Android优化——UI优化(三)
- Java连接MYSQL
- [android] 如何获取media文件的meta data信息