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

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.}