Android Bitmap用法

来源:互联网 发布:网站正在升级最新域名 编辑:程序博客网 时间:2024/05/17 08:07

1、Drawable → Bitmap

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(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());drawable.draw(canvas);return bitmap;}

2、从资源中获取Bitmap

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

4、byte[] → Bitmap

private Bitmap Bytes2Bimap(byte[] b){if(b.length!=0){return BitmapFactory.decodeByteArray(b, 0, b.length);}else {return null;}}
5、保存bitmap

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 blockGenerated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.e.printStackTrace();}return bmp.compress(format, quality, stream);}

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

// 图片源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, 0, 0, width, height, matrix,true);// 放在画布上canvas.drawBitmap(newbm, 0, 0, paint);

7:File图片转Bitmap

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

8://图片转Bitmap

public Bitmap drawableToBitamp(int drawableResource) {//可以取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);}
                                             
0 0
原创粉丝点击