android 常用Bitmap处理方法收集:普通裁剪,缩放,圆形裁剪
来源:互联网 发布:淘宝模板代码怎么关闭 编辑:程序博客网 时间:2024/06/05 14:26
代码是平常使用时收集的,并不是本人所写。这些bitmap处理方法在我的android程序里面使用相对较多,希望对大家也有些帮助。
import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;public class AdjustBitmap { //将bitmap调整到指定大小 public static Bitmap sizeBitmap(Bitmap origin, int newWidth, int newHeight) { if (origin == null) { return null; } int height = origin.getHeight(); int width = origin.getWidth(); float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight);// 使用后乘 Bitmap newBM = Bitmap.createBitmap(origin, 0, 0, width, height, matrix, false); if (!origin.isRecycled()) {//这时候origin还有吗? origin.recycle(); } return newBM; } //按比例缩放 public static Bitmap scaleBitmap(Bitmap origin, float scale) { if (origin == null) { return null; } int width = origin.getWidth(); int height = origin.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(scale, scale); Bitmap newBM = Bitmap.createBitmap(origin, 0, 0, width, height, matrix, false); if (newBM.equals(origin)) { return newBM; } origin.recycle(); return newBM; } public static Bitmap cropBitmap(Bitmap bitmap) {//从中间截取一个正方形 int w = bitmap.getWidth(); // 得到图片的宽,高 int h = bitmap.getHeight(); int cropWidth = w >= h ? h : w;// 裁切后所取的正方形区域边长 return Bitmap.createBitmap(bitmap, (bitmap.getWidth() - cropWidth) / 2, (bitmap.getHeight() - cropWidth) / 2, cropWidth, cropWidth); } public static Bitmap getCircleBitmap(Bitmap bitmap) {//把图片裁剪成圆形 if (bitmap == null) { return null; } bitmap = cropBitmap(bitmap);//裁剪成正方形 try { Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(circleBitmap); final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight())); float roundPx = 0.0f; roundPx = bitmap.getWidth(); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(Color.WHITE); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); final Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); canvas.drawBitmap(bitmap, src, rect, paint); return circleBitmap; } catch (Exception e) { return bitmap; } }}
1 1
- android 常用Bitmap处理方法收集:普通裁剪,缩放,圆形裁剪
- 把bitmap裁剪成圆形bitmap的方法
- 圆形头像裁剪,可以缩放预览,裁剪为圆形
- Android Bitmap 常见的几个操作:缩放,裁剪,旋转,偏移
- Android Bitmap 常见的几个操作:缩放,裁剪,旋转,偏移
- Android裁剪图片为圆形
- Android裁剪圆形头像源码
- Android裁剪图片为圆形
- bitmap 裁剪
- android系统方法裁剪图片部分手机显示为圆形
- Android--图片裁剪-Bitmap.createBitmap
- android图片裁剪和缩放
- UIImage的扩展方法——裁剪图片和等比列缩放图片-翻转-圆形等
- android系统裁剪方法
- android系统裁剪方法
- android系统裁剪方法
- android系统裁剪方法
- ios Image裁剪成圆形的方法
- zookeeper-使用场景
- C++之类模板最简单的使用
- 关于ubuntu的环境变量
- Java nio channel 说明
- 验证码计时器-CountDownTimer
- android 常用Bitmap处理方法收集:普通裁剪,缩放,圆形裁剪
- Windows下基于phpStudy的DVWA web渗透测试漏洞平台搭建
- actionScriptProperties linkType
- SPFA 邻接表模式
- 递推递归练习 A
- 阿里云服务器(CentOS 7.0)如何更改服务器主机名称以及安装配置JDK、Tomcat和Mysql
- 实验吧安全杂项WP(六)
- MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause
- sqlConnection连接不上sql 2000 原来是因为没有打补丁sp4