zoukankan      html  css  js  c++  java
  • Android图片转换类 1. Bitmap去色,转换为黑白的灰度图, 2. Bitmap图片加圆角效果

    /** 
    * 处理图片的工具类.
    *
    */
    public class ImageTools {

    /***//**
    * 图片去色,返回灰度图片
    *
    @param bmpOriginal 传入的图片
    *
    @return 去色后的图片
    */
    public static Bitmap toGrayscale(Bitmap bmpOriginal) {
    int width, height;
    height = bmpOriginal.getHeight();
    width = bmpOriginal.getWidth();

    Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    Canvas c = new Canvas(bmpGrayscale);
    Paint paint = new Paint();
    ColorMatrix cm = new ColorMatrix();
    cm.setSaturation(0);
    ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
    paint.setColorFilter(f);
    c.drawBitmap(bmpOriginal, 0, 0, paint);
    return bmpGrayscale;
    }


    /***//**
    * 去色同时加圆角
    *
    @param bmpOriginal 原图
    *
    @param pixels 圆角弧度
    *
    @return 修改后的图片
    */
    public static Bitmap toGrayscale(Bitmap bmpOriginal, int pixels) {
    return toRoundCorner(toGrayscale(bmpOriginal), pixels);
    }

    /***//**
    * 把图片变成圆角
    *
    @param bitmap 需要修改的图片
    *
    @param pixels 圆角的弧度
    *
    @return 圆角图片
    */
    public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {

    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
    .getHeight(), 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);
    final float roundPx = pixels;

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);

    return output;
    }


    /***//**
    * 使圆角功能支持BitampDrawable
    *
    @param bitmapDrawable
    *
    @param pixels
    *
    @return
    */
    public static BitmapDrawable toRoundCorner(BitmapDrawable bitmapDrawable, int pixels) {
    Bitmap bitmap = bitmapDrawable.getBitmap();
    bitmapDrawable = new BitmapDrawable(toRoundCorner(bitmap, pixels));
    return bitmapDrawable;
    }
    }
  • 相关阅读:
    Hadoop技术创新方案
    什么是大数据
    大数据框架hadoop服务角色介绍
    学习hadoop需要什么基础
    web开发安全框架中的Apache Shiro的应用
    大数据分布式存储的部署模式:分离式or超融合
    Class类的getSimpleName()
    Eclipse快捷键
    mysql_建立索引的优缺点
    锁表 for update
  • 原文地址:https://www.cnblogs.com/error404/p/2239370.html
Copyright © 2011-2022 走看看