drawable转mitmap 以及图片base64编码
static Bitmap drawableToBitmap(Drawable drawable) // drawable 转换成bitmap
{
int width = drawable.getIntrinsicWidth();// 取drawable的长宽
int height = drawable.getIntrinsicHeight();
Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ?Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565;// 取drawable的颜色格式
Bitmap bitmap = Bitmap.createBitmap(width, height, config);// 建立对应bitmap
Canvas canvas = new Canvas(bitmap);// 建立对应bitmap的画布
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);// 把drawable内容画到画布中
return bitmap;
}
调用代码,getDrawable过期了,但是还可以用,替换的方法暂未发现
Bitmap bitmap = drawableToBitmap(this.getResources().getDrawable(R.drawable.ic_launcher));
2.图片转base64
public String Bitmap2StrByBase64(Bitmap bit){
ByteArrayOutputStream bos=new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 40, bos);//参数100表示不压缩
byte[] bytes=bos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
1.Drawable—>Bitmap
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0);
Resources res=getResources();
private byte[] Bitmap2Bytes(Bitmap bm){
2.Bitmap---->Drawable
Drawable drawable =new BitmapDrawable(bmp);
3、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;
}
4、从资源中获取Bitmap
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);
5、Bitmap → byte[]
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
return baos.toByteArray(); }
6、 byte[] → Bitmap
private Bitmap Bytes2Bimap(byte[] b){
if(b.length!=0){
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
else {
return null;
}
}
最新文章
- 【zz】matlab 均值方差
- C-随笔
- iTween研究院之学习笔记Move移动篇
- java解析json与map,list相互之间的转换
- windows服务相关
- ios 好去处
- jquery,js常用特效名称
- python刷取CSDN博文访问量之三
- html5 乒乓球(碰撞检测)
- Linux入门(六)ubuntu下vim编辑器安装与使用
- cpu、内存、缓存、硬盘使用率
- Arduino库函数中文说明
- C重新入门
- gitlab:开发+测试+发布的全流程图
- Vue.js——基于$.ajax实现数据的跨域增删查改
- 02:Django进阶篇
- 使用EasyWechat快速开发微信公众号支付
- 关于sql查询语句中的别名
- [Android实例] Android 6.0RecyclerView SwipeRefreshLayout 下拉刷新 上拉加载
- cuda yv12_to_rgb24