Android处理图像数据转换的各种方法

作者:junjie 时间:2023-07-10 10:58:50 

Android中处理图像是一件很常见的事情,这里记录备忘一些亲身使用过的处理图片数据的方法。

转为Bitmap

RGB值转Bitmap


private Bitmap createColorBitmap(String rgb, int width, int height) {
      Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
      int color = Color.parseColor(rgb);
      bmp.eraseColor(color);
      return bmp;
}

//Usage
Bitmap bmp = createColorBitmap("#cce8cf", 200, 50);

Color值转Bitmap


private Bitmap createColorBitmap(int color, int width, int height) {
  Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
  bmp.eraseColor(color);
  return bmp;
}
//Usage
Bitmap bmp = createColorBitmap(Color.BLUE, 200, 50);

字节数组转Bitmap


private Bitmap getBitmapFromByteArray(byte[] array) {
  return BitmapFactory.decodeByteArray(array, 0, array.length);
}

读取文件转Bitmap


private Bitmap getBitmapFromFile(String pathName) {
      return BitmapFactory.decodeFile(pathName);
}

读取资源转Bitmap


private Bitmap getBitmapFromResource(Resources res, int resId) {
      return BitmapFactory.decodeResource(res, resId);
  }

输入流转Bitmap


private Bitmap getBitmapFromStream(InputStream inputStream) {
      return BitmapFactory.decodeStream(inputStream);
}

Drawable转Bitmap


Bitmap icon = BitmapFactory.decodeResource(context.getResources(),R.drawable.icon_resource);

转为Drawable

资源转Drawable


Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);


Bitmap转Drawable


Drawable d = new BitmapDrawable(getResources(),bitmap);

图片圆角展示

通过对图片数据bitmap进行处理即可,其中pixels为边角的半径。


public static Bitmap getRoundedCornerBitmap(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;
    }

标签:Android,图像数据转换
0
投稿

猜你喜欢

  • Android的OkHttp包中的HTTP拦截器Interceptor用法示例

    2022-01-31 06:31:25
  • Java封装、继承、多态三大特征的理解

    2023-07-16 14:26:46
  • springboot+mybatis+枚举处理器的实现

    2023-11-06 00:48:04
  • C# 对MongoDB 进行增删改查的简单操作实例

    2022-03-07 14:10:26
  • Android开发中Bitmap高效加载使用详解

    2021-06-05 01:32:15
  • C#纯技术之Class写入Json

    2023-01-15 17:13:49
  • java模拟实现斗地主发牌小程序

    2021-07-20 01:55:11
  • java的arraylist排序示例(arraylist用法)

    2023-01-15 06:55:37
  • 如何利用JAVA实现走迷宫程序

    2022-06-23 10:52:06
  • C#中用foreach语句遍历数组及将数组作为参数的用法

    2022-03-14 16:25:12
  • C#难点逐个击破(3):params数组参数

    2022-01-17 14:40:22
  • seata springcloud整合教程与遇到的坑

    2023-09-19 03:11:06
  • MyBatis-Plus中的逻辑删除使用详解

    2022-12-29 15:07:40
  • Android服务Service教程

    2022-02-19 13:05:40
  • C#实现读写ini文件类实例

    2023-09-06 18:47:00
  • Java多线程之synchronized同步代码块详解

    2022-02-10 21:29:51
  • 基于SqlSessionFactory的openSession方法使用

    2023-02-26 23:10:15
  • Android学习笔记-保存数据到SQL数据库中(Saving Data in SQL Databases)

    2023-07-28 08:32:20
  • 详细解读JAVA多线程实现的三种方式

    2022-01-14 04:35:31
  • Android SDK Manager更新、下载速度慢问题解决办法

    2023-10-25 06:03:18
  • asp之家 软件编程 m.aspxhome.com