3.Android 各式图片类型的转换
前言
在Android开发中我们经常会转换图片类型,如资源ID转换成Bitmap
Bitmap
转换成byte[]
ByteArrayOutputStream baos = new ByteArrayOutputStream();
你的bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] 输出的byte[]数据 = baos.toByteArray();
保存到文件
try {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(文件路径));
你的Bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
转换成Drawable
Bitmap 输出Bitmap=((BitmapDrawable) d).getBitmap();
byte[]
转换成Bitmap
Bitmap 输出的Bitmap = BitmapFactory.decodeByteArray(你的byte[], 0, b.length);
文件
转换成Bitmap
Bitmap 输出Bitmap=BitmapFactory.decodeFile(你的文件);
Url
转换成Bitmap (须在子线程)
public Bitmap getBitmap(String url) {
Bitmap bm = null;
try {
URL iconUrl = new URL(url);
URLConnection conn = iconUrl.openConnection();
HttpURLConnection http = (HttpURLConnection) conn;
int length = http.getContentLength();
conn.connect();
// 获得图像的字符流
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is, length);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();// 关闭流
}
catch (Exception e) {
e.printStackTrace();
}
return bm;
}
View
转换成Bitmap
public static Bitmap getBitmap(View view)
{
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
return bm;
}
Drawable
转换成Bitmap
Drawable 输出Drawable=new BitmapDrawable(你的Bitmap);
资源ID
转换成Bitmap(R.drawable.*****)
Bitmap 输出Bitmap=BitmapFactory.decodeResource(你的Context.getResources(), 资源ID);
转换成Drawable(R.drawable.*****)
Drawable 输出Drawable=你的Context.getResources().getDrawable(资源ID);