Bitmap使用举例

来源:互联网 发布:sublime text3写c语言 编辑:程序博客网 时间:2024/06/09 22:51

一. Drawable to 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;}

二. 从资源中获取Bitmap:

Resources res=getResources();Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);

三. Bitmap to byte[]:

private byte[] Bitmap2Bytes(Bitmap bm){ByteArrayOutputStream baos = new ByteArrayOutputStream();bm.compress(Bitmap.CompressFormat.PNG, 100, baos);return baos.toByteArray();}

四. byte[] to Bitmap:

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

五. 保存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);}

六. 将图片缩放:

// 图片源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);

七. File 图片 to Bitmap:

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

八. 图片toBitmap:

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