• android 将图片内容解析成字节数组,将字节数组转换为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;  
  •  
        }  
  •  
              
  •  
    }  
  •  

    相关文章:

    • 2022-12-23
    • 2021-10-03
    • 2021-10-08
    • 2022-12-23
    猜你喜欢
    • 2022-12-23
    • 2021-09-29
    • 2022-12-23
    • 2022-12-23
    • 2021-12-06
    相关资源
    相似解决方案