这几天遇到一个问题,绊住好长时间,为了以后有据可查,现在记录下来。
问题:选中图片还会用在别的地方,所以先把图片以某种方式保存起来,然后到了用的时候再将图片取出来用。
这个的做法比较容易想到的就是流来存然后取;
1。首先就是先把图片读成字节,然后将字节保存在流中。
//存储图片,变成byte形式,便于在上面取出
byte[] buffer=new byte[1024];
//等号后面是图片的路径
InputStream in= cr.openInputStream(uri);
//下面是将图片读成字节,而且是以1024为单位读的
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//定义整数类型对象
int number;
//利用循环方式将图片读完整
while((number=in.read(buffer, 0, buffer.length))>0)
{
baos.write(buffer, 0, number);
}
//将字节保存到byte[]数组对象中
byte[] reallyByte=baos.toByteArray();
//byte存储了图片,然后再用流存储图片,定义文件名和访问权限
OutputStream os = openFileOutput("file.txt",Activity.MODE_PRIVATE);
os.write(reallyByte);
os.close();
//log一下,检验是否真的有字节存放到了指定文件夹中
Log.v("MyPhoneText","reallyByte.length="+reallyByte.length);
2。取出来
现在用到了再android中很重要的一个点Bitmap。一定记得要多留意此小东西的用法。前途无量。
还要提醒下的是,要放在try中存储和读取流
try{
//定义BitmapFactory工厂的decodeStream方法,这个工厂方法很多。继续学习。方法内为存储图片的那个流文件的路径
Bitmap bitmap = BitmapFactory.decodeStream(this.openFileInput("file.txt"));
//取出的bitmap对象就直接可以用来放在ImageView中显示
imageShow.setImageBitmap(bitmap);
}catch(Exception e){
e.printStackTrace();
}
分享到:
相关推荐
在C#中,可以使用Bitmap的Save方法将Bitmap对象保存到Stream中。这个方法接受一个Stream对象作为参数,以及可选的ImageFormat来指定图像格式(如JPEG、PNG等)。 ```csharp Bitmap bitmap = new Bitmap("image.jpg...
5. **复制Bitmap数据到Byte数组**:通过内存操作,将`GetBitmapBits()`返回的像素数据指针指向的数据复制到新创建的Byte数组中。需要注意,由于不同平台的内存对齐问题,可能需要进行额外的处理。 6. **释放资源**...
在Android开发中,Bitmap是用于表示图像数据的一种对象,它在内存中占用较大空间,因此在处理图片时,我们有时需要将其转换为byte数组(byte[]),以便于存储、传输或者在网络流中使用。这个过程涉及到图像数据的...
在Android开发中,Bitmap是用于显示图像的基本类,它是一个位图对象,通常用来加载、显示和处理图片。然而,由于Bitmap对象占用大量的内存,直接加载大图片可能会导致内存溢出(Out Of Memory,OOM)问题。因此,...
在Android开发中,有时我们需要将Bitmap对象转换成不同的图片格式,比如BMP。BMP(Bitmap File Format)是一种常见的位图文件格式,但它并不像JPEG或PNG那样被Android SDK直接支持。本文将详细介绍如何在Android中将...
Bitmap的使用涉及到图片的加载、变换、显示以及性能优化等多个方面。本篇将详细阐述Bitmap的基本操作和相关知识点。 1. **Bitmap加载** - **从资源加载**:可以使用`Resources`类的`getDrawable(int resid)`方法从...
Bitmap是Android系统中用于存储和处理图像数据的重要类,它是一个位图,即像素的二维数组,常用于显示和操作图像。BitmapFactory是用于解析图片资源并生成Bitmap对象的工具类,例如`BitmapFactory.decodeResource()`...
在这个过程中,我们将深入探讨Bitmap的使用、图片加载优化以及图片裁剪技术。 1. Bitmap基础: Bitmap对象存储图像像素信息,它包含了图像的颜色模式、宽度、高度等属性。在Android中,通常通过BitmapFactory类来...
本篇文章将深入探讨如何在Android中对Bitmap图片进行处理,使其能够以任意角度显示为圆角,以及涉及到的相关技术。 首先,我们要理解Android中的ImageView组件,它是用来显示图像的视图,可以显示Bitmap或者从资源...
本篇将详细探讨如何在C#中读取图片流,以便进行图像处理操作。 首先,我们需要理解“图片流”的概念。图片流是将图片数据以流式格式存储的一种方式,它可以是内存中的数据流,也可以是从硬盘、网络或任何其他输入/...
软件开发网在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path、Bitmap用法,以及实现的代码分析。 1. 获取Bitmap: 1)在图片下载缓存好之后...
在Android中,我们可以使用BitmapFactory类来解析图片资源,将其转化为Bitmap对象。例如: ```java Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image); ``` 接下来,我们讨论...
首先,我们需要了解什么是 bitmap 图片,bitmap 图片是一种图像存储格式,它将图像分割成一个个像素,然后将每个像素的颜色值存储在内存中,以便于图像的处理和显示。 在 Android 中,我们可以使用 Bitmap 类来处理...
在Android开发中,处理图像数据时,我们经常需要在Drawable、Bitmap、InputStream和byte数组之间进行转换。这些类型的转换在不同的场景下具有重要的作用,例如从网络加载图片、存储图片到本地或者显示在ImageView上...
我就废话不多说了,大家还是直接看代码吧~ //Uri.parse(file://+result.getImage... //方法一:通过uri把图片转化为bitmap的方法 Bitmap bitmap= BitmapFactory.decodeFile(path); int height= bitmap.get
在Android开发中,图片资源的处理是常见的需求之一,涉及到多种数据类型之间的转换,包括`Drawable`、`Bitmap`、`byte[]`等。本文将详细介绍这些类型之间的转换方法,以及如何实现灰度图像的转换。 ### 1. `...
这段代码中,我们先将Bitmap压缩成PNG格式,然后通过`Base64.encodeToString()`方法将其转化为Base64字符串。 #### 3. 处理大图和缩略图 对于较大的图片,直接操作可能会导致内存溢出等问题。因此,在处理大图时,...
### Delphi BMP 图片转 RGB Byte 方法解析 #### 核心知识点概述 本文将深入探讨一个在 Delphi 开发环境中使用的函数,该函数用于将 BMP 图像格式转换为 RGB Byte 数组。通过此函数,我们可以方便地处理图像数据,...
本文将详细介绍如何在Android环境中,利用Zxing库实现多二维码识别,以及如何将资源库中的图片转化为Bitmap来辅助这一过程。 首先,Zxing(ZXing,读作“zebra crossing”)是一个开源的、跨平台的条码解码库,支持...
本文将深入探讨Android中图片的字节存储和字符串存储,并结合数据库存储来构建一个完整的示例项目。这个项目对于初学者来说是一个很好的学习起点。 首先,我们来看图片的字节流存储。在Android中,可以使用...