android 对图像进行矩阵变换(Martix)的使用笔记
android中,有一个类Martix类,可对图像进行变换,所以我这里记录下如何操作这个类。
Matrix可以对图像进行放大,缩小,旋转,饱和度调整,对比度调整等等。
旋转操作:
Matrix matrix = new Matrix();
1.
matrix.reset();
matrix.setRotate(180); //把图像正向旋转180度,如为负数则逆向旋转
picBitmap= Bitmap.createBitmap(picBitmap,0,0, picBitmap.getWidth(), picBitmap.getHeight(),matrix, true);
2.
martix.reset();
matrix.setRotate(180,picBitmap.getWidth()/2,picBitmap.getHeight()/2); //第二,第三个参数为旋转中心点(x,y)
Bitmap createBmp = Bitmap.createBitmap(picBitmap.getWidth(), picBitmap.getHeight(), picBitmap.getConfig());
Canvas canvas = new Canvas(createBmp);
Paint paint = new Paint();
canvas.drawBitmap(picBitmap, matrix, paint);
以上两种方式都在把图像顺时针绕图像中心旋转180度
放大操作:
Matrix matrix = new Matrix();
matrix.reset();
//第一个参数为x轴方向上的缩放系数,第二个参数为y轴方向上的缩放系数,
matrix.setScale(2,2, picBitmap.getWidth()/2, picBitmap.getHeight()/2); // 带缩放点(x, y)
matrix.setScale(2,2); // 不带缩放点
picBitmap= Bitmap.createBitmap(picBitmap,0,0, picBitmap.getWidth(), picBitmap.getHeight(),matrix, true);
缩小操作:
Matrix matrix = new Matrix();
matrix.reset();
//第一个参数为x轴方向上的缩放系数,第二个参数为y轴方向上的缩放系数,
matrix.setScale(0.5, 0.5, picBitmap.getWidth()/2, picBitmap.getHeight()/2); // 带缩放点(x, y)
matrix.setScale(0.5, 0.5); // 不带缩放点
picBitmap= Bitmap.createBitmap(picBitmap,0,0, picBitmap.getWidth(), picBitmap.getHeight(),matrix, true);
对比度调整操作:
ColorMatrix cm = new ColorMatrix();
float brightness = -25; //亮度
float contrast = 2; //对比度
cm.set(new float[] {
contrast, 0, 0, 0, brightness,
0, contrast, 0, 0, brightness,
0, 0, contrast, 0, brightness,
0, 0, 0, contrast, 0
});
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
Matrix matrix = new Matrix();
Bitmap createBmp = Bitmap.createBitmap(picBitmap.getWidth(), picBitmap.getHeight(), picBitmap.getConfig());
Canvas canvas = new Canvas(createBmp);
canvas.drawBitmap(picBitmap, matrix, paint);
饱和度调整操作:
//设置饱和度 0表示灰度图像 大于1饱和度增加 0-1饱和度减小
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(saturation);
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
Matrix matrix = new Matrix();
Bitmap createBmp = Bitmap.createBitmap(picBitmap.getWidth(), picBitmap.getHeight(), picBitmap.getConfig());
Canvas canvas = new Canvas(createBmp);
canvas.drawBitmap(picBitmap, matrix, paint);
-_-@ a little a day
更多相关文章
- android Shader类简介_渲染图像
- android图像绘制(一)——镜像问题
- Android图像处理简介の使用内置Camera应用程序进行图像捕获
- Android之UI学习篇六:ImageView实现图片旋转和缩放
- Android实战经验之图像处理及特效处理的集锦(总结版)
- Android 图像绘制之 Drawable
- Android中几种图像特效处理的集锦!
- Android 图片点击 全屏缩放预览
- android ImagView缩放方法之一(Bitmap)