读书人

android 将图片内容解析成字节数组,将

发布时间: 2012-06-29 15:48:47 作者: rapoo

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

读书人网 >图形图像

热点推荐