一、Bitmap转Drawable
Bitmap bm=xxx; //xxx根据你的情况获取
BitmapDrawable bd=new BitmapDrawable(bm);
因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。
二、 Drawable转Bitmap
转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保存成为jpg和png的文件。
Drawable d=xxx; //xxx根据自己的情况获取drawable
BitmapDrawable bd = (BitmapDrawable) d; Bitmap bm = bd.getBitmap();
最终bm就是我们需要的Bitmap对象了。
// 从资源中获取Bitmap
public static Bitmap getBitmapFromResources(Activity act, int resId) { Resources res = act.getResources(); return BitmapFactory.decodeResource(res, resId); }
// byte[] → Bitmap
public static Bitmap convertBytes2Bimap(byte[] b) { if (b.length == 0) { return null; } return BitmapFactory.decodeByteArray(b, 0, b.length); }
// Bitmap → byte[]
public static byte[] convertBitmap2Bytes(Bitmap bm) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); }
// 1)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapByCanvas(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; }
// 2)Drawable → Bitmap
public static Bitmap convertDrawable2BitmapSimple(Drawable drawable){ BitmapDrawable bd = (BitmapDrawable) drawable; return bd.getBitmap(); }
// Bitmap → Drawable
public static Drawable convertBitmap2Drawable(Bitmap bitmap) { BitmapDrawable bd = new BitmapDrawable(bitmap); // 因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。 return bd; }
相关推荐
将Bitmap转换为Drawable,可以创建一个BitmapDrawable对象,然后设置其Bitmap属性。以下是转换方法: ```java Drawable drawable = bitmapToDrawable(context, bitmap); public static Drawable ...
Android Drawable和Bitmap的转换实例详解 通常我们需要通过代码去设置图片,就需要设置图片Bitmap和Drawable的转换,下面整理了几种方式 一、Bitmap转Drawable Bitmap bm=xxx; //xxx根据你的情况获取 ...
将Bitmap转换为byte数组,通常是为了便于在网络上传输或存储到文件中。这个过程涉及压缩,可以选择不同的压缩格式和质量。 ```java private byte[] Bitmap2Bytes(Bitmap bm) { ByteArrayOutputStream baos = new ...
在Android开发中,图片资源的处理是常见的需求之一,涉及到多种数据类型之间的转换,包括`Drawable`、`Bitmap`、`byte[]`等。本文将详细介绍这些类型之间的转换方法,以及如何实现灰度图像的转换。 ### 1. `...
// 将Bitmap转换为Drawable并进一步处理 Drawable drawable = bitmapToDrawable(this, bitmap); ``` 3. **图像处理** 对于复杂的图像处理需求,如缩放、裁剪等操作,通常使用`Bitmap`更加方便。例如,可以将...
以上就是关于`Drawable`、`Bitmap`和`byte[]`之间转换的具体实现方法。在实际开发中,根据不同的应用场景选择合适的方法进行转换是非常重要的。此外,还需要注意内存管理和性能优化的问题,例如适当调整图像大小和...
在网络传输或保存到数据库时,将Bitmap转换为byte数组可以降低存储和传输的成本。 下面是如何在这些类型之间进行转换: 1. Drawable到Bitmap: 要将Drawable转换为Bitmap,可以使用Drawable的`copyBounds()`方法...
在Android应用开发中,将View或Drawable...总结,将View或Drawable转换为Bitmap是Android开发中的基础操作,但需要注意缓存大小和绘制过程中的细节。正确地处理这些问题可以确保在各种场景下都能得到正确的Bitmap结果。
很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。下面Android123给大家两种比较简单高效的方法。 一、Bitmap转Drawable 代码如下: Bitmap bm=xxx; //xxx根据你的情况获取 BitmapDrawable bd...
将Bitmap转换为Drawable相对简单,只需将Bitmap传递给BitmapDrawable的构造函数即可: ```java Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_icon); Drawable drawable = new ...
Android Bitmap和Drawable的对比 Android Bitmap和Drawable是Android平台中两种常见的图形对象,虽然它们都可以用来显示图像,但是它们之间有着很大的区别。本文将对Android Bitmap和Drawable进行对比,帮助开发者...
图片比例缩放和Bitmap转换为BitmapDrawable是其中的关键步骤,尤其在优化应用性能、节省资源消耗方面起着决定性作用。这篇博文将深入探讨这两个主题。 首先,我们来谈谈图片比例缩放。在Android中,加载大尺寸的...
4. **Drawable转Bitmap**:对于Drawable对象,可以通过创建一个新的Bitmap和Canvas,然后将Drawable的内容绘制到Canvas上,从而得到Bitmap。`drawable.draw(canvas)`这一步就是将Drawable的内容复制到Bitmap。 5. *...
5. **转换为Drawable**:绘制完成后,将Bitmap转换为Drawable对象,可以使用BitmapDrawable构造函数完成。然后,这个Drawable对象就可以像其他图片资源一样在XML布局或代码中使用。 6. **进一步扩展**:除了基本的...
3. **Bitmap转换为byte数组**: 当需要将Bitmap保存到内存或发送到服务器时,可以将其转换为byte数组: ```java private byte[] Bitmap2Bytes(Bitmap bm) { ByteArrayOutputStream baos = new ...
`Bitmap2Bytes(Bitmap bm)`方法将Bitmap转换为byte数组。它创建一个`ByteArrayOutputStream`,然后使用`compress()`方法将Bitmap压缩成PNG格式(可选择其他格式),压缩质量设置为100(即无损压缩),最后将`...
在Android开发中,OpenCV库...总之,Android OpenCV中Bitmap转换为Mat的问题主要与Bitmap的加载方式和OpenCV的兼容性有关。通过理解这两种数据结构以及它们之间的转换机制,开发者可以采取适当措施避免或解决此类问题。