分享一个Android图片转换类 1. Bitmap去色,转换为黑白的灰度图, 2.&nb

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 13:50 点击:

今天下午弄了半天实现了图片变黑白和圆角效果,发出来大家共享一下~
其中思路主要来自www.stackoverflow.com

不多说,直接贴代码,欢迎大家交流自己的方法~

 1/** *//**
 2 * 处理图片的工具类.
 3 *
 4 */
 5public class ImageTools {
 6   
 7    /** *//**
 8     * 图片去色,返回灰度图片
 9     * @param bmpOriginal 传入的图片
10     * @return 去色后的图片
11     */
12    public static Bitmap toGrayscale(Bitmap bmpOriginal) {
13        int width, height;
14        height = bmpOriginal.getHeight();
15        width = bmpOriginal.getWidth();   
16
17        Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
18        Canvas c = new Canvas(bmpGrayscale);
19        Paint paint = new Paint();
20        ColorMatrix cm = new ColorMatrix();
21        cm.setSaturation(0);
22        ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
23        paint.setColorFilter(f);
24        c.drawBitmap(bmpOriginal, 0, 0, paint);
25        return bmpGrayscale;
26    }
27   
28   
29    /** *//**
30     * 去色同时加圆角
31     * @param bmpOriginal 原图
32     * @param pixels 圆角弧度
33     * @return 修改后的图片
34     */
35    public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {
36        return toRoundCorner(toGrayscale(bmpOriginal), pixels);
37    }
38   
39    /** *//**
40     * 把图片变成圆角
41     * @param bitmap 需要修改的图片
42     * @param pixels 圆角的弧度
43     * @return 圆角图片
44     */
45    public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
46
47        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
48                .getHeight(), Config.ARGB_8888);
49        Canvas canvas = new Canvas(output);
50
51        final int color = 0xff424242;
52        final Paint paint = new Paint();
53        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
54        final RectF rectF = new RectF(rect);
55        final float roundPx = pixels;
56
57        paint.setAntiAlias(true);
58        canvas.drawARGB(0, 0, 0, 0);
59        paint.setColor(color);
60        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
61
62        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
63        canvas.drawBitmap(bitmap, rect, rect, paint);
64
65        return output;
66    }
67
68   
69  &nb

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Android 完全退出程序
      • 原创:Android应用开发-Andorid歌词秀,含源码
      • android 屏幕保护
      • Android手机软件汉化教程---第四课 dex文件汉化
      • 众多Android 开源项目推荐,给力工作给力学习
      • Android Audio代码分析4
      • Android得到已安装的应用程序信息!
      • Android开发者指南(29) —— USB Host and Accessory
      • Android成长的幕后推手:工程师鲁宾
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1