Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Bitmap與DrawAble與byte[]與InputStream之間的轉換工具類

Android Bitmap與DrawAble與byte[]與InputStream之間的轉換工具類

編輯:關於Android編程

[java]   package com.soai.imdemo;      import java.io.ByteArrayInputStream;   import java.io.ByteArrayOutputStream;   import java.io.InputStream;      import android.graphics.Bitmap;   import android.graphics.BitmapFactory;   import android.graphics.Canvas;   import android.graphics.PixelFormat;   import android.graphics.drawable.BitmapDrawable;   import android.graphics.drawable.Drawable;      /**   * Bitmap與DrawAble與byte[]與InputStream之間的轉換工具類   * @author Administrator   *   */   public class FormatTools {       private static FormatTools tools = new FormatTools();          public static FormatTools getInstance() {           if (tools == null) {               tools = new FormatTools();               return tools;           }           return tools;       }          // 將byte[]轉換成InputStream       public InputStream Byte2InputStream(byte[] b) {           ByteArrayInputStream bais = new ByteArrayInputStream(b);           return bais;       }          // 將InputStream轉換成byte[]       public byte[] InputStream2Bytes(InputStream is) {           String str = "";           byte[] readByte = new byte[1024];           int readCount = -1;           try {               while ((readCount = is.read(readByte, 0, 1024)) != -1) {                   str += new String(readByte).trim();               }               return str.getBytes();           } catch (Exception e) {               e.printStackTrace();           }           return null;       }          // 將Bitmap轉換成InputStream       public InputStream Bitmap2InputStream(Bitmap bm) {           ByteArrayOutputStream baos = new ByteArrayOutputStream();           bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);           InputStream is = new ByteArrayInputStream(baos.toByteArray());           return is;       }          // 將Bitmap轉換成InputStream       public InputStream Bitmap2InputStream(Bitmap bm, int quality) {           ByteArrayOutputStream baos = new ByteArrayOutputStream();           bm.compress(Bitmap.CompressFormat.PNG, quality, baos);           InputStream is = new ByteArrayInputStream(baos.toByteArray());           return is;       }          // 將InputStream轉換成Bitmap       public Bitmap InputStream2Bitmap(InputStream is) {           return BitmapFactory.decodeStream(is);       }          // Drawable轉換成InputStream       public InputStream Drawable2InputStream(Drawable d) {           Bitmap bitmap = this.drawable2Bitmap(d);           return this.Bitmap2InputStream(bitmap);       }          // InputStream轉換成Drawable       public Drawable InputStream2Drawable(InputStream is) {           Bitmap bitmap = this.InputStream2Bitmap(is);           return this.bitmap2Drawable(bitmap);       }          // Drawable轉換成byte[]       public byte[] Drawable2Bytes(Drawable d) {           Bitmap bitmap = this.drawable2Bitmap(d);           return this.Bitmap2Bytes(bitmap);       }          // byte[]轉換成Drawable       public Drawable Bytes2Drawable(byte[] b) {           Bitmap bitmap = this.Bytes2Bitmap(b);           return this.bitmap2Drawable(bitmap);       }          // Bitmap轉換成byte[]       public byte[] Bitmap2Bytes(Bitmap bm) {           ByteArrayOutputStream baos = new ByteArrayOutputStream();           bm.compress(Bitmap.CompressFormat.PNG, 100, baos);           return baos.toByteArray();       }          // byte[]轉換成Bitmap       public Bitmap Bytes2Bitmap(byte[] b) {           if (b.length != 0) {               return BitmapFactory.decodeByteArray(b, 0, b.length);           }           return null;       }          // Drawable轉換成Bitmap       public Bitmap drawable2Bitmap(Drawable drawable) {           Bitmap bitmap = Bitmap                   .createBitmap(                           drawable.getIntrinsicWidth(),                           drawable.getIntrinsicHeight(),                           drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888                                   : Bitmap.Config.RGB_565);           Canvas canvas = new Canvas(bitmap);           drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),                   drawable.getIntrinsicHeight());           drawable.draw(canvas);           return bitmap;       }          // Bitmap轉換成Drawable       public Drawable bitmap2Drawable(Bitmap bitmap) {           BitmapDrawable bd = new BitmapDrawable(bitmap);           Drawable d = (Drawable) bd;           return d;       }   }    
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved