Android将drawable图像转化为二进制字节数组与逆转换
16lz
2021-12-04
首先是将图像转换为二进制字节数组进行存储
// ------------------------将drawable 图像转化成二进制字节----------------public synchronized byte[] drawableToByte(Drawable drawable) {if (drawable != null) {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);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());drawable.draw(canvas);int size = bitmap.getWidth() * bitmap.getHeight() * 4;// 创建一个字节数组输出流,流的大小为sizeByteArrayOutputStream baos = new ByteArrayOutputStream(size);// 设置位图的压缩格式,质量为100%,并放入字节数组输出流中bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);// 将字节数组输出流转化为字节数组byte[]byte[] imagedata = baos.toByteArray();return imagedata;}return null;}
下面是将二进制字节数组进行转换为drawable图像 对象.
public synchronized Drawable byteToDrawable(byte[] img) {Bitmap bitmap;if (img != null) {bitmap = BitmapFactory.decodeByteArray(img,0, img.length);Drawable drawable = new BitmapDrawable(bitmap); return drawable;}return null;}
这个方法应该在开发中会经常用到,留给大家吧!
更多相关文章
- Android解析JSON
- Android新增一个音频类型及双音频输出的实现
- Android/Java中的常用签名算法
- Android(安卓)Bitmap与String互转
- Android(安卓)默认声音大小修改
- android解析json数组
- Android——JSONObject解析JSON数据
- android中json的序列化与反序列化
- Android日志输出单元测试Debug