欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-07-03 19:02:26
android中处理图像是一件很常见的事情,这里记录备忘一些亲身使用过的处理图片数据的方法。 转为bitmap rgb值转bitmap 复制代码 代码如下: pri...

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;
    }