android 读取RAW中的bmp图片为byte数组
时间: 2024-12-16 15:31:01 浏览: 9
在Android中,要从raw资源文件夹下的.bmp图片读取并转换为字节数组,你可以按照以下步骤操作:
1. 首先,确保你的项目中有一个名为"drawable"的目录,下面再创建一个名为"raw"的小目录,将.bmp图片放在这里。
2. 使用`InputStream`和`BitmapFactory`类来完成这个任务。在你的Activity或Fragment里,可以编写如下的代码:
```java
// 图片资源ID,假设你的bmp图片资源名为image_bitmap
int bitmapResourceId = R.raw.image_bitmap;
// 创建一个FileDescriptor用于访问raw文件
FileDescriptor fd = getAssets().openFd(bitmapResourceId);
// 从FileDescriptor获取输入流
InputStream is = new FileInputStream(fd.getFileDescriptor());
// 创建一个ByteArrayOutputStream用于接收图片数据
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 将输入流的数据复制到ByteArrayOutputStream中
byte[] buffer = new byte[1024];
int read;
while ((read = is.read(buffer)) != -1) {
baos.write(buffer, 0, read);
}
// 关闭输入流
is.close();
// 将ByteArrayOutputStream的内容转换为Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(baos.toByteArray(), 0, baos.size());
// 最后关闭FileDescriptor
fd.close();
```
现在`baos.toByteArray()`就是你的BMP图片的字节数组了。
阅读全文