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