转自:http://blog.csdn.net/maylian7700/article/details/7071837
注意是反转,不是翻转。贴图:
原图:
处理后:
下面看代码:
package com.jacp.image.util;
import android.graphics.Bitmap;
import android.graphics.Matrix;
/**
* 图片处理
*
* @author maylian7700@126.com
*
*/
public class ImageHandler {
/**
* 图片旋转
*
* @param bmp
* 要旋转的图片
* @param degree
* 图片旋转的角度,负值为逆时针旋转,正值为顺时针旋转
* @return
*/
public static Bitmap rotateBitmap(Bitmap bmp, float degree) {
Matrix matrix = new Matrix();
matrix.postRotate(degree);
return Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
}
/**
* 图片缩放
*
* @param bm
* @param scale
* 值小于则为缩小,否则为放大
* @return
*/
public static Bitmap resizeBitmap(Bitmap bm, float scale) {
Matrix matrix = new Matrix();
matrix.postScale(scale, scale);
return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
}
/**
* 图片缩放
*
* @param bm
* @param w
* 缩小或放大成的宽
* @param h
* 缩小或放大成的高
* @return
*/
public static Bitmap resizeBitmap(Bitmap bm, int w, int h) {
Bitmap BitmapOrg = bm;
int width = BitmapOrg.getWidth();
int height = BitmapOrg.getHeight();
float scaleWidth = ((float) w) / width;
float scaleHeight = ((float) h) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
return Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true);
}
/**
* 图片反转
*
* @param bm
* @param flag
* 0为水平反转,1为垂直反转
* @return
*/
public static Bitmap reverseBitmap(Bitmap bmp, int flag) {
float[] floats = null;
switch (flag) {
case 0: // 水平反转
floats = new float[] { -1f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 1f };
break;
case 1: // 垂直反转
floats = new float[] { 1f, 0f, 0f, 0f, -1f, 0f, 0f, 0f, 1f };
break;
}
if (floats != null) {
Matrix matrix = new Matrix();
matrix.setValues(floats);
return Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
}
return null;
}
}
分享到:
相关推荐
Android图片裁剪----移动、缩放图片进行裁剪
2. android 图像处理系列之二--图片旋转、缩放、反转........................................................................................ 3 3. android 图像处理系列之三--图片色调饱和度、色相、...
一个Android图片缩放查看控件,支持手势
六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解,博客地址http://blog.csdn.net/eastmount/article/details/46345299 主要讲述基于VC++6.0 MFC图像处理的应用知识,要通过MFC单文档视图实现显示BMP图片空间...
android手势处理图片平移、缩放和旋转 图片出界判断 处理后新图片的创建
Android高级应用源码-Android图片的旋转,缩放,剪切,存储.zip
图像处理算法,包括图像的缩放,滤波,增强,锐化,旋转,反色等。c语言处理算法
matlab开发-图像格式旋转和缩放功能。这个函数获取一个图像,缩放它,并以θ(弧度,刚性运动)旋转它。
Android图片浏览全屏缩放.zip
图片旋转缩放触控
Android图片的旋转,缩放,剪切,存储.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android高级应用源码-Android 图片浏览全屏缩放.zip
opencv图像处理 opencv图像处理_opencv图像处理算法之仿射变换_包括旋转+平移+缩放+组合变换
3dmax2020中文版基础入门视频教程-05.移动旋转缩放命令的使用.zip
一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换...
可以实现: 1.图片缩小,采用平均值算法,可以实现长宽比不等的缩小 2.图片放大,采用线性插值,可以实现图片比例改变 3.图片旋转
图像处理---关于像素坐标矩阵变换(平移,旋转,缩放,错切)