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


来源: http://www.2cto.com/kf/201408/327978.html

相关文章推荐

Bitmap的四种属性,与每种属性对应的大小

参考文章:http://blog.csdn.net/rabbit_in_android/article/details/49967461

一个非常好用的Android流式布局

效果图镇楼 首先我们先添加依赖compile 'com.zhy:flowlayout-lib:1.0.3'然后将以下标签和布局添加到项目中。 主布局layouy->activity_flow_...

FlycoDialog 简单实用的自定义Android弹窗对话框(Dialog)

效果图镇楼 FlycoDialog是一款非常棒的弹窗对话框处理框架,今天在这里主要讲一下他的自定义弹出对话框的功能,这里以第二幅效果图为例,图片已经放在博客最下方,X号...

Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项

本文首先总结一下Bitmap的相关概念,然后通过一个实际的问题来分析设置BitmapFactory.options的注意事项,以减少不必要的内存占用率,避免发生OOM。 一、 Bitmap的使用tr...

(转)Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项

原地址:http://blog.csdn.net/bigconvience/article/details/27054639 本文首先总结一下Bitmap的相关概念,然后通过一个实际的问...
  • duyiqun
  • duyiqun
  • 2017年04月15日 19:46
  • 287

位图索引bitmap(一):基本概念

位图索引(bitmap index)技术是一类特殊的数据库索引技术,其索引使用bit数组(或称bitmap、bit set、bit string、bit vector)进行存储与计算操作。...

bitmap 的简单使用

  • 2010年08月30日 18:13
  • 33KB
  • 下载

C#图像处理——2(使用Bitmap类进行图片裁剪)

C# 使用Bitmap类进行图片裁剪    在Mapwin(手机游戏地图编辑器)生成的地图txt文件中添加自己需要处理的数据后转换成可在手机(Ophone)开发环境中使用的字节流地图文件的小工具,...

对话框练习之使用Bitmap和使用Skin++

  • 2011年11月14日 18:43
  • 4.95MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Bitmap的基本使用
举报原因:
原因补充:

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