`
abc20899
  • 浏览: 932822 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byt

 
阅读更多
import java.io.BufferedOutputStream;  
04.import java.io.ByteArrayOutputStream;  
05.import java.io.File;  
06.import java.io.FileOutputStream;  
07.import java.io.IOException;  
08.import java.io.InputStream;  
09.  
10.import android.graphics.Bitmap;  
11.import android.graphics.BitmapFactory;  
12.import android.graphics.Matrix;  
13.  
14.public class ImageDispose {  
15.      
16.      
17.      
18.    /** 
19.     * @param 将图片内容解析成字节数组 
20.     * @param inStream 
21.     * @return byte[] 
22.     * @throws Exception 
23.     */  
24.    public static byte[] readStream(InputStream inStream) throws Exception {  
25.        byte[] buffer = new byte[1024];  
26.        int len = -1;  
27.        ByteArrayOutputStream outStream = new ByteArrayOutputStream();  
28.        while ((len = inStream.read(buffer)) != -1) {  
29.            outStream.write(buffer, 0, len);  
30.        }  
31.        byte[] data = outStream.toByteArray();  
32.        outStream.close();  
33.        inStream.close();  
34.        return data;  
35.  
36.    }  
37.    /** 
38.     * @param 将字节数组转换为ImageView可调用的Bitmap对象 
39.     * @param bytes 
40.     * @param opts 
41.     * @return Bitmap 
42.     */  
43.    public static Bitmap getPicFromBytes(byte[] bytes,  
44.            BitmapFactory.Options opts) {  
45.        if (bytes != null)  
46.            if (opts != null)  
47.                return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,  
48.                        opts);  
49.            else  
50.                return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);  
51.        return null;  
52.    }  
53.    /** 
54.     * @param 图片缩放 
55.     * @param bitmap 对象 
56.     * @param w 要缩放的宽度 
57.     * @param h 要缩放的高度 
58.     * @return newBmp 新 Bitmap对象 
59.     */  
60.    public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){  
61.        int width = bitmap.getWidth();  
62.        int height = bitmap.getHeight();  
63.        Matrix matrix = new Matrix();  
64.        float scaleWidth = ((float) w / width);  
65.        float scaleHeight = ((float) h / height);  
66.        matrix.postScale(scaleWidth, scaleHeight);  
67.        Bitmap newBmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,  
68.                matrix, true);  
69.        return newBmp;  
70.    }  
71.      
72.    /** 
73.     * 把Bitmap转Byte 
74.     * @Author HEH 
75.     * @EditTime 2010-07-19 上午11:45:56 
76.     */  
77.    public static byte[] Bitmap2Bytes(Bitmap bm){  
78.        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
79.        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);  
80.        return baos.toByteArray();  
81.    }  
82.    /** 
83.     * 把字节数组保存为一个文件 
84.     * @Author HEH 
85.     * @EditTime 2010-07-19 上午11:45:56 
86.     */  
87.    public static File getFileFromBytes(byte[] b, String outputFile) {  
88.        BufferedOutputStream stream = null;  
89.        File file = null;  
90.        try {  
91.            file = new File(outputFile);  
92.            FileOutputStream fstream = new FileOutputStream(file);  
93.            stream = new BufferedOutputStream(fstream);  
94.            stream.write(b);  
95.        } catch (Exception e) {  
96.            e.printStackTrace();  
97.        } finally {  
98.            if (stream != null) {  
99.                try {  
100.                    stream.close();  
101.                } catch (IOException e1) {  
102.                    e1.printStackTrace();  
103.                }  
104.            }  
105.        }  
106.        return file;  
107.    }  
108.          
109.}  
分享到:
评论

相关推荐

    Android显示在线图片

    5. **BitmapFactory**: 提供了一系列静态方法,用于将各种格式的数据(如:字节数组、文件等)解码成Bitmap对象。 6. **ImageView**: Android提供的视图组件,用于显示图像。在本例中,我们使用ImageView来显示下载...

    Android编程使用Intent传递图片的方法详解

    总结,Android编程中使用Intent传递图片的关键在于将图片转换为字节数组,通过Intent进行传递,然后在接收端再将字节数组还原为Bitmap。这种方法虽然简单,但对图片大小有限制,对于大数据量的图片,应考虑更高效的...

    将存RGB数据流上屏显示(android)

    通过以上步骤,我们可以将接收到的RGB数据流转换为Bitmap对象并在Android屏幕上显示。这个过程适用于各种情况,比如解码视频帧、实时图像处理等。对于性能敏感的应用,还可以进一步优化,如使用硬件加速、异步处理等...

    android图片资源文件plist文件解析

    在Android开发中,图片资源是应用界面不可或缺的部分。在处理图片资源时,有时我们会遇到`.plist`文件,这种文件格式通常用于存储iOS平台的图像数据,但也可以在Android项目中用到,特别是在处理图片序列或者动画时...

    android 上传和下载图片

    可以使用`BitmapFactory`解析URI,然后将其转换为字节数组: ```java Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImageUri)); ByteArrayOutputStream stream = new...

    Android 调用系统相机拍照、以及相册

    1. **将图片转换为字节流**:使用`Bitmap.compress()`方法将Bitmap对象转换为JPEG或PNG格式的字节数组。 2. **创建HTTP请求**:使用`HttpURLConnection`或者第三方库如OkHttp、Retrofit等,创建POST请求,设置...

    Android应用源码之(Bitmap位图渲染与操作).zip

    - **ImageView显示**:通过ImageView的`setImageBitmap()`方法展示Bitmap,可设置ScaleType调整显示方式。 - **自定义View**:在自定义View中,可以通过onDraw()方法直接绘制Bitmap。 5. **Bitmap操作** - **...

    Android中对图像进行Base64编码

    调用`Bitmap`对象的`compress()`方法,将Bitmap压缩为JPEG或PNG格式的字节数组。例如: ```java ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap....

    android显示图片

    保存图片时,将Bitmap对象转换为字节数组,然后写入到文件中。这样,下次需要显示同一张图片时,可以从本地直接读取,而无需再次联网。 在Android中,显示Bitmap图片通常使用`ImageView`组件。通过设置`ImageView`...

    Android传递Bitmap对象在两个Activity之间

    传递User对象的步骤与传递Bitmap类似,只是我们将对象转换为字节数组,然后在另一个Activity中反序列化恢复。 ```java // 在源Activity中 User user = new User("John Doe", 30); Intent intent = new Intent(this,...

    android bitmap

    在Android开发中,Bitmap是用于处理图像的基本类,它提供了图片的加载、显示、缩放、旋转等操作。Bitmap对象代表了图片像素的数据,而Matrix则是一个二维变换矩阵,可以用来对Bitmap进行复杂的几何变换,如缩放、...

    android图片截屏

    - **转换为二进制数据**:将图片转换成字节数组,然后存储在BLOB(Binary Large Object)类型的字段中。使用`Bitmap.compress(Bitmap.CompressFormat, quality, stream)`方法将Bitmap转换为字节流。 - **文件路径...

    Android Drawable和Bitmap的转换实例详解

    当我们有一个Bitmap对象,需要将其设置为ImageView或者其它可显示图像的组件时,通常会将其转换为Drawable。这个过程相对简单,因为BitmapDrawable是Drawable的一个子类,可以直接创建一个新的BitmapDrawable对象,...

    Android如何获取网络图片

    - 在给定的代码示例中,`NetTool.getImage()`方法获取网络图片的字节数组,然后在主线程中使用`BitmapFactory.decodeByteArray()`将其转换为Bitmap。 5. **显示Bitmap**: - `ImageView`是Android中用于显示图像...

    获取网络图片并显示

    BufferedInputStream提高读取效率,ByteArrayOutputStream用于接收数据并转换为字节数组。 ```java BufferedInputStream bis = new BufferedInputStream(in); ByteArrayOutputStream baos = new ...

    android拍照保存技术

    保存Bitmap到本地文件,你需要先创建一个File对象表示存储路径,然后使用Bitmap的compress()方法将其转换为JPEG或PNG格式的字节数组,最后写入文件。确保你有写入外部存储的权限(READ_EXTERNAL_STORAGE和WRITE_...

    安卓调用手机摄像机拍照 存储上传+PHP端存储返回

    首先,将`Bitmap`转换成字节数组,然后作为请求体的一部分发送。 5. **PHP端处理**: 服务器端的PHP代码(如AppController.php)接收到请求后,需要读取上传的图片数据,通常是从`$_FILES`全局变量中获取。使用`...

    通过压缩Bitmap来避免OOM

    在Android开发中,Bitmap对象是消耗内存的主要因素之一,尤其在处理大图或者大量图片时,容易引发“Out of Memory”(简称OOM)错误。为了避免这种情况,开发者需要掌握如何有效地管理和压缩Bitmap,以优化内存使用...

    Glide源码解析方法调用图

    解析步骤通常涉及将下载的字节数据转换成Android可以显示的Bitmap对象。Glide会根据图片的不同格式,使用不同的解析器。例如,对于JPEG图片,会使用ImageHeaderParser解析图片的头信息,然后用解码器(如...

Global site tag (gtag.js) - Google Analytics