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

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

你可能感兴趣的:(android,Stream,null,buffer,float,byte)