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);
- 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;
- }
- }
- 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、将图片按自己的要求缩放
- // 图片源
- 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) {<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);
- }