当前位置: 代码迷 >> Android >> Android之Bit地图对象和字节流之间的相互转换
  详细解决方案

Android之Bit地图对象和字节流之间的相互转换

热度:46   发布时间:2016-04-28 05:05:40.0
Android之Bitmap对象和字节流之间的相互转换
将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte 
import java.io.BufferedOutputStream;    import java.io.ByteArrayOutputStream;    import java.io.File;    import java.io.FileOutputStream;    import java.io.IOException;    import java.io.InputStream;        import android.graphics.Bitmap;    import android.graphics.BitmapFactory;    import android.graphics.Matrix;        public class ImageDispose {                                /**       * @param 将图片内容解析成字节数组       * @param inStream       * @return byte[]       * @throws Exception       */        public static byte[] readStream(InputStream inStream) throws Exception {            byte[] buffer = new byte[1024];            int len = -1;            ByteArrayOutputStream outStream = new ByteArrayOutputStream();            while ((len = inStream.read(buffer)) != -1) {                outStream.write(buffer, 0, len);            }            byte[] data = outStream.toByteArray();            outStream.close();            inStream.close();            return data;            }        /**       * @param 将字节数组转换为ImageView可调用的Bitmap对象       * @param bytes       * @param opts       * @return Bitmap       */        public static Bitmap getPicFromBytes(byte[] bytes,                BitmapFactory.Options opts) {            if (bytes != null)                if (opts != null)                    return BitmapFactory.decodeByteArray(bytes, 0, bytes.length,                            opts);                else                    return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);            return null;        }        /**       * @param 图片缩放       * @param bitmap 对象       * @param w 要缩放的宽度       * @param h 要缩放的高度       * @return newBmp 新 Bitmap对象       */        public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h){            int width = bitmap.getWidth();            int height = bitmap.getHeight();            Matrix matrix = new Matrix();            float scaleWidth = ((float) w / width);            float scaleHeight = ((float) h / height);            matrix.postScale(scaleWidth, scaleHeight);            Bitmap newBmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,                    matrix, true);            return newBmp;        }                /**       * 把Bitmap转Byte       */        public static byte[] Bitmap2Bytes(Bitmap bm){            ByteArrayOutputStream baos = new ByteArrayOutputStream();            bm.compress(Bitmap.CompressFormat.PNG, 100, baos);            return baos.toByteArray();        }        /**       * 把字节数组保存为一个文件       */        public static File getFileFromBytes(byte[] b, String outputFile) {            BufferedOutputStream stream = null;            File file = null;            try {                file = new File(outputFile);                FileOutputStream fstream = new FileOutputStream(file);                stream = new BufferedOutputStream(fstream);                stream.write(b);            } catch (Exception e) {                e.printStackTrace();            } finally {                if (stream != null) {                    try {                        stream.close();                    } catch (IOException e1) {                        e1.printStackTrace();                    }                }            }            return file;        }                }    


见博客文章:http://blog.csdn.net/itheima6/article/details/7516631
  相关解决方案