Drawable 与byte 之间的互相转换
最近的任务需要把Drawable保存到数据库,在这里想到的方法就是把Drawable 转换为byte存起来
public class BitmapUtil { /** * 将drawable 图像转化成二进制字节数组 * @param drawable 要转化drawable对象 * @return byte[] */ public static byte[] getDrawableByte(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); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); // 创建一个字节数组输出流 ByteArrayOutputStream stream = new ByteArrayOutputStream(); //设置位图的压缩格式,质量为100%,并放入字节数组输出流中 //选择Bitmap.CompressFormat.PNG,不然把byte[]转换成drawable图像会有黑色背景 bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); // 将字节数组输出流转化为字节数组byte[] byte[] bitmapdata = stream.toByteArray(); return bitmapdata; } /** * 将二进制字节数组 转化成 drawable 图像 * @param bytes * @return */ public static Drawable getDrawable(byte[] bytes,Context context) { Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); BitmapDrawable bd = new BitmapDrawable(context.getResources(), bitmap); return bd; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!