图片处理Android工具类(缩放,圆角,倒影)
发布时间:2020-12-15 00:28:36 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 package com.demo;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 package com.demo; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Shader.TileMode; /** * 图片处理工具类(缩放,圆角,倒影) * */ public class ImageUtils { /** * 图片缩放 * * @param pBitmap * @param pW * @param pH * @return */ public static Bitmap zoomBitmap(Bitmap pBitmap,int pW,int pH) { int _width = pBitmap.getWidth();// 获取原图的宽 int _heigth = pBitmap.getHeight();// 获取原图的高 // 获取缩放比 float _ScaleW = (float) pW / _width; float _ScaleH = (float) pH / _heigth; Matrix _Matrix = new Matrix();// 创建Matrix矩阵对象 _Matrix.setScale(_ScaleW,_ScaleH);// 设置宽高的缩放比 return Bitmap.createBitmap(pBitmap,_width,_heigth,_Matrix,true);// 对截原图的0,0坐标到_width,_heigth的图片进行_Matrix处理 } /** * 图片圆角 * * @param pBitmap * @param pRoundpx * @return */ public static Bitmap RoundedCornerBitmap(Bitmap pBitmap,float pRoundpx) { Bitmap _NewBitmap = Bitmap.createBitmap(pBitmap.getWidth(),pBitmap.getHeight(),Config.ARGB_8888); // 创建图片画布大小 Canvas _Canvas = new Canvas(_NewBitmap); // 创建画布 _Canvas.drawARGB(0,0); // 设置画布透明 Paint _Paint = new Paint(); // 创建画笔 _Paint.setAntiAlias(true); // 抗锯齿 _Paint.setColor(0xff000000);// 画笔颜色透明 // 画与原图片大小一致的圆角矩形 Rect _Rect = new Rect(0,pBitmap.getWidth(),pBitmap.getHeight()); RectF _RectF = new RectF(_Rect); _Canvas.drawRoundRect(_RectF,pRoundpx,_Paint); _Paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 设置下面张图片与上面张图片的交互模式 _Canvas.drawBitmap(pBitmap,_Rect,_Paint);// 画原图到画布 return _NewBitmap; } /** * 图片倒影 * * @param pBitmap * @return */ public static Bitmap ReflectionImageWithOrigin(Bitmap pBitmap) { // 创建等宽,高+高/5的画布 Bitmap _NewBitmap = Bitmap .createBitmap(pBitmap.getWidth(),pBitmap.getHeight() + pBitmap.getHeight() / 5,Config.ARGB_8888); Canvas _Canvas = new Canvas(_NewBitmap); _Canvas.drawBitmap(pBitmap,null);// 画上原图 // 原图翻转, Matrix _Matrix = new Matrix(); _Matrix.preScale(1,-1); Bitmap _Bitmap = Bitmap.createBitmap(pBitmap,true); // 在剩余画布上画上翻转图 _Canvas.drawBitmap(_Bitmap,null); Paint _Paint = new Paint(); // 实现图片的渐变效果 LinearGradient shader = new LinearGradient(0,_NewBitmap.getHeight(),0x70ffffff,0x00ffffff,TileMode.CLAMP); _Paint.setShader(shader); _Paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); _Canvas.drawRect(0,_Paint); return _NewBitmap; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- JSP利用过滤器解决request中文乱码问题
- Android 旋转图片
- java.io.FileDescriptor#sync()是否特定于单个FileDescript
- 使用Java 8 Optional for String of List作为输出
- java – 在Spring Expression Language中访问属性文件
- java – 为什么我们不能使用构造函数本身初始化servlet?
- java – Spring Data Rest:RepositoryEventHandler方法未被
- java之注解
- diea编写hello world案例
- 基于spring boot 1.5.4 集成 jpa+hibernate+jdbcTemplate(详