Bitmap的基本使用

转载 2017年08月31日 14:49:07

1、Drawable → Bitmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static Bitmap drawableToBitmap(Drawable drawable) {
 
Bitmap bitmap = Bitmap
 
.createBitmap(
 
drawable.getIntrinsicWidth(),
 
drawable.getIntrinsicHeight(),
 
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
 
: Bitmap.Config.RGB_565);
 
Canvas canvas = new Canvas(bitmap);
 
// canvas.setBitmap(bitmap);
 
drawable.setBounds(00, drawable.getIntrinsicWidth(),
 
drawable.getIntrinsicHeight());
 
drawable.draw(canvas);
 
return bitmap;
 
}

2、从资源中获取Bitmap

1
2
3
Resources res=getResources();
 
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);
3、Bitmap → byte[]
1
2
3
4
5
6
7
8
9
private byte[] Bitmap2Bytes(Bitmap bm){
 
ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
 
return baos.toByteArray();
 
}

4、byte[] → Bitmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private Bitmap Bytes2Bimap(byte[] b){
 
if(b.length!=0){
 
return BitmapFactory.decodeByteArray(b, 0, b.length);
 
}
 
else {
 
return null;
 
}
 
}
5、保存bitmap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static boolean saveBitmap2file(Bitmap bmp,String filename){
 
CompressFormat format= Bitmap.CompressFormat.JPEG;
 
int quality = 100;
 
OutputStream stream = null;
 
try {
 
stream = new FileOutputStream("/sdcard/" + filename);
 
catch (FileNotFoundException e) {
 
// TODO Auto-generated catch block
 
Generated by Foxit PDF Creator © Foxit Software
 
http://www.foxitsoftware.com For evaluation only.
 
e.printStackTrace();
 
}
 
return bmp.compress(format, quality, stream);
 
}

6、将图片按自己的要求缩放

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 图片源
 
Bitmap bm = BitmapFactory.decodeStream(getResources()
 
.openRawResource(R.drawable.dog));
 
// 获得图片的宽高
 
int width = bm.getWidth();
 
int height = bm.getHeight();
 
// 设置想要的大小
 
int newWidth = 320;
 
int newHeight = 480;
 
// 计算缩放比例
 
float scaleWidth = ((float) newWidth) / width;
 
float scaleHeight = ((float) newHeight) / height;
 
// 取得想要缩放的matrix参数
 
Matrix matrix = new Matrix();
 
matrix.postScale(scaleWidth, scaleHeight);
 
// 得到新的图片
 
Bitmap newbm = Bitmap.createBitmap(bm, 00, width, height, matrix,
 
true);
 
// 放在画布上
 
canvas.drawBitmap(newbm, 00, paint);

7:File图片转Bitmap

1
Bitmap bt = BitmapFactory.decodeFile("/sdcard/myImage/" "head.jpg");//图片地址

8://图片转Bitmap

1
2
3
4
5
6
7
8
9
public Bitmap drawableToBitamp(int drawableResource) {<span style="white-space:pre">    </span>//可以取raw里面的资源
        BitmapFactory.Options opt = new BitmapFactory.Options();
        opt.inPreferredConfig = Bitmap.Config.RGB_565;
        opt.inPurgeable = true;
        opt.inInputShareable = true;
        InputStream is = this.getResources().openRawResource(drawableResource);
        BitmapFactory.decodeStream(is, null, opt);
        return BitmapFactory.decodeStream(is, null, opt);
    }



Bitmap 色彩模式

android——Bitmap.Config ARGB_8888 Bitmap.Config有以下几个常量: 1 2 3 4 public static final Bitmap....
  • Inconsolabl
  • Inconsolabl
  • 2015年09月11日 15:59
  • 554

安卓 Bitmap基本使用

//讲一个Bitmap对象封装成BitmapDrawable 对象 bitmapDrawable drawable = new BitmapDrawable(bitmap); //获取bitmap...
  • hlbt0112
  • hlbt0112
  • 2015年03月23日 21:03
  • 217

Bitmap 的分析与使用

Bitmap的分析与使用 Bitmap的创建创建Bitmap的时候,Java不提供new Bitmap()的形式去创建,而是通过BitmapFactory中的静态方法去创建,如:BitmapFacto...
  • Victor_Zhang_SH
  • Victor_Zhang_SH
  • 2016年12月06日 20:56
  • 517

总结一下Android中Bitmap图片操作中要注意的地方

1. 使用decodeStream获取Bitmap    ImageView.setImageBitmap、ImageView.setImageResource、BitmapFactory.decod...
  • u011268102
  • u011268102
  • 2013年08月08日 22:55
  • 1339

Android 从具体实例分析Bitmap使用时候内存注意点

Android 从官方给的具体实例分析Bitmap使用的时候内存注意点。为以后使用Bitmap出现各种内存问题做一个参考作用。...
  • wuyuxing24
  • wuyuxing24
  • 2016年06月14日 23:16
  • 7029

bitmap的用法

bitmap很容易跟位图文件(Bitmap)混淆,后者是用来表示图片的。前者是一种编程技巧,即用整型或字符型数组,其中每个数组元素的每一位都用来描述某个特征,如此很好的节省了内存空间,如若要表示100...
  • zhiren2011
  • zhiren2011
  • 2015年08月05日 16:55
  • 322

用DiskGenius V4.2.0进行调整容量时提示“$Bitmap 有标记已使用的未用簇”

在cmd中使用磁盘检查命令chkdisk。        使用参数/X ,会先强制卸除卷,该卷的所有打开的句柄都将无效(隐含 /F)。        chkdisk /x /f  c:。       ...
  • freefan1
  • freefan1
  • 2016年08月23日 15:47
  • 4503

Bitmap加载的正确方式

//NOTE: 1、得到要压缩的比例(也就是options.inSampleSize) BitmapFactory.Options options = new BitmapFactor...
  • lonewolf521125
  • lonewolf521125
  • 2015年07月03日 16:26
  • 1059

android开发之bitmap使用

bitmap是android中重要的图像处理工具类,通过bitmap可以对图像进行剪切、旋转、缩放等操作,同时还可以指定格式和压缩质量保存图像文件。一、拿到一个Bitmap对象查看源码我们知道,Bit...
  • u012702547
  • u012702547
  • 2015年08月15日 11:04
  • 3454

Bitmap类用法 详细说明

1.    BitMap类
  • ymangu
  • ymangu
  • 2014年07月12日 21:32
  • 15558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Bitmap的基本使用
举报原因:
原因补充:

(最多只允许输入30个字)