Android中Bitmap、Drawable、byte[]转换

	// Android中Bitmap、Drawable、byte[]转换
	// 1.Drawable—>Bitmap


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


	// 2.Bitmap---->Drawable


	Drawable drawable = new BitmapDrawable(bmp);


	// 另外在网上搜了些,也不知到底谁是原创的


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

你可能感兴趣的:(Android中Bitmap、Drawable、byte[]转换)