Android 中 資原始檔圖片轉 Bitmap 和 Drawable 以及相互轉換的方法
阿新 • • 發佈:2018-12-27
Android 圖片轉換的方法總結:
一、Bitmap 轉換成 Drawable
對 Bitmap 進行強制轉換
Drawable drawable = new BitmapDrawable(bmp);
二、Drawable 轉換成 Bitmap
方法一
通過 BitmapFactory 中的 decodeResource 方法,將資原始檔中的R.mipmap.ic_launcher 轉化成Bitmap。
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
方法二
根據Drawable建立一個新的Bitmap,封裝一個方法:
public static Bitmap drawableToBitmap(Drawable drawable) {
int w = drawable.getIntrinsicWidth();//獲取寬
int h = drawable.getIntrinsicHeight();//獲取高
Bitmap.Config btmConfig =drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565;
Bitmap bitmap = Bitmap.createBitmap(w, h, btmConfig);
//繪製新的bitmap
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, w, h);
drawable.draw(canvas);
//返回bitmap
return bitmap;
}
方法三
將 Drable 物件轉化成 BitmapDrawable ,然後呼叫 getBitmap 方法獲取
Drawable drawable =getResources ().getDrawable(R.mipmap.ic_launcher);//獲取drawable
BitmapDrawable bd = (BitmapDrawable) drawable;
Bitmap bm= bd.getBitmap();
三、Bitmap 轉換成 byte[]
封裝方法
//Bitmap 轉換成 byte[]
public static byte[] bitmapToBytes(Bitmap bitmap){
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
}
四、byte[] 轉化成 Bitmap
封裝方法
public static Bitmap bytesToBitmap(byte[] b) {
if (b.length != 0) {
return BitmapFactory.decodeByteArray(b, 0, b.length); //返回bitmap
} else {
return null;
}
}