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

源自:http://blog.csdn.net/z104207/article/details/6634774

  1. package com.bingo.util; 
  2.  
  3. import java.io.BufferedOutputStream; 
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.File; 
  6. import java.io.FileOutputStream; 
  7. import java.io.IOException; 
  8. import java.io.InputStream; 
  9.  
  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.          

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值