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

Android中Bitmap对象和字节流之间的相互转换的更多相关文章

  1. Android中Bitmap对象和字节流之间的相互转换(转)

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

  2. Android中Bitmap, Drawable, Byte,ID之间的转化

    Android中Bitmap, Drawable, Byte,ID之间的转化 1.  Bitmap 转化为 byte ByteArrayOutputStream out = new ByteArray ...

  3. JS 中 JSON 对象与字符串之间的相互转换

    在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦 ...

  4. Json数组操作小记 及 JSON对象和字符串之间的相互转换

    [{"productid":"1","sortindex":"2"},{"productid":&q ...

  5. Android中传递对象的三种方法

    Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者I ...

  6. 【转】Android中dip(dp)与px之间单位转换

    Android中dip(dp)与px之间单位转换 dp这个单位可能对web开发的人比较陌生,因为一般都是使用px(像素)但是,现在在开始android应用和游戏后,基本上都转换成用dp作用为单位了,因 ...

  7. 在android中实现webview与javascript之间的交互(转)

    参见“在android中实现webview与javascript之间的交互”

  8. android中Bitmap的放大和缩小的方法

    android中Bitmap的放大和缩小的方法 时间 2013-06-20 19:02:34  CSDN博客原文  http://blog.csdn.net/ada168855/article/det ...

  9. JSON对象与字符串之间的相互转换

    <html> <head> <meta name="viewport" content="width=device-width" ...

随机推荐

  1. javascript模块化编程-立即执行函数(IIFE)

    IIFE 全拼Imdiately Invoked Function Expression,立即执行的函数表达式. 语法 var module1 = (function(){ var _count = ...

  2. 填一个laravel视图缓存没有及时更新的坑

    1.此坑背景 laravel在渲染blade模板后,会将渲染好的结果存到storage/framework/views(默认路径,也可在配置中修改的)中,以便下次使用.但我最近总是发现修改了blade ...

  3. 关于RecyclerView你知道的不知道的都在这了(上)

    目录 前言 目录 正文 1. LayoutManager 2. ViewHolder 3. LayoutParams 4. Adapter 5. RecyclerView 6. Recycler 7. ...

  4. JS动态创建元素

    动态添加标签,可从服务器获取标签文本,然后加载到指定div中,可用于权限控制. 1.添加标签字符串方式 var str='<div>5555555555555555555555555555 ...

  5. python之把字符串形式的函数编译执行

    实现效果:执行字符串形式的函数 代码如下 # name = 'aaa' # data = [18,32,33] # def hellocute(): # return "name %s ,a ...

  6. JavaScript Hoisting(提升)

    Hoisting 是指 js 在执行代码前,默认会将变量的声明和函数的声明,提升到当前作用域顶端的行为. 这里要注意一下,只提升声明,例如: console.log(a); var a = 10; / ...

  7. CSS概念【记录】

    1.CSS语法 2.@规则 3.注释 4.层叠 5.优先级 6.继承 7.值 8.块格式化上下文 9.盒模型 10.层叠上下文 11.可替换元素 12.外边距合并 13.包含块 14.视觉格式化模型 ...

  8. HTML之元素分类(HTML基础知识)

    HTML之元素分类 一.按照块级元素还是行内元素分类 块级元素(block-level)和行内元素(inline-level,也叫作“内联”元素). a.块级元素(独占一行) 块级元素:其最明显的特征 ...

  9. Bootstrap table 分页 In asp.net MVC

    中文翻译文档: http://blog.csdn.net/rickiyeat/article/details/56483577 版本说明: Jquery v2.1.1 Bootstrap V3.3.7 ...

  10. linux下ssh通过公钥登录服务器

    经常会通过ssh登录远程服务器,一种是通过密码方式登录,一种是通过公钥登录. 如何设置通过公钥登录服务器 1. 首先生成自己的公钥和私钥 ssh-keygen 命令用来生成公钥和私钥 -t 用来指定密 ...