博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bitmap压缩到指定尺寸大小,获取圆角、圆形图片
阅读量:6263 次
发布时间:2019-06-22

本文共 2260 字,大约阅读时间需要 7 分钟。

/**     * 使用Matrix将Bitmap压缩到指定大小     * @param bitmap     * @param w     * @param h     * @return     */    public static Bitmap resizeBitmap(Bitmap bitmap, int w, int h)    {        int width = bitmap.getWidth();        int height = bitmap.getHeight();        float scaleWidth = ((float) w) / width;        float scaleHeight = ((float) h) / height;        Matrix matrix = new Matrix();        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width,                height, matrix, true);        return resizedBitmap;    }    /**     * 给Bitmap设置圆角     * @param bitmap     * @param roundPx  圆角值     * @return     */    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap                .getHeight(), Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(output);        final int color = 0xff424242;        final Paint paint = new Paint();        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());        final RectF rectF = new RectF(rect);        paint.setAntiAlias(true);        canvas.drawARGB(0, 0, 0, 0);        paint.setColor(color);        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));        canvas.drawBitmap(bitmap, rect, rect, paint);        return output;    }    /**     * 得到圆形图片     * @param bitmap     * @return     */    public static Bitmap getOvalBitmap(Bitmap bitmap){        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap                .getHeight(), Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(output);        final int color = 0xff424242;        final Paint paint = new Paint();        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());        final RectF rectF = new RectF(rect);        paint.setAntiAlias(true);        canvas.drawARGB(0, 0, 0, 0);        paint.setColor(color);        canvas.drawOval(rectF, paint);        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));        canvas.drawBitmap(bitmap, rect, rect, paint);        return output;    }

  

转载于:https://www.cnblogs.com/wangjiaghe/p/7063282.html

你可能感兴趣的文章
link和@import的区别浅析
查看>>
vscode 相关
查看>>
nodejs 全自动使用 Tinypng (免费版,无需任何配置)压缩图片
查看>>
彻底理解Java中的基本数据类型转换(自动、强制、提升)
查看>>
在CentOS中安装redis5.0
查看>>
重构-改善既有代码的设计(六)--重新组织函数
查看>>
panic: time: missing Location in call to Time.In
查看>>
在K8S集群中一步步构建一个复杂的MySQL数据库
查看>>
前端每日实战:15# 视频演示如何用纯 CSS 创作条形图,不用任何图表库
查看>>
浅谈 Angular 项目实战
查看>>
初学Linux指导(三)
查看>>
C++入门教程(8):if 语句
查看>>
Tampermonkey的使用
查看>>
功能强大的Tomcat 管理监控工具【PSI Probe】
查看>>
element 源码学习五 —— Notice 系列组件学习
查看>>
小程序开发之二(路由拦截设计)
查看>>
鹅厂优文 | 怎样用AI运维
查看>>
鹅厂内部干货|微信小游戏开发技术怎么应用?
查看>>
DOM疑惑点整理(一)
查看>>
.NET多线程和异步总结(一)
查看>>