zoukankan      html  css  js  c++  java
  • BitmapFactory.decodeByteArray() 返回null,分析与解决

    问题描述:用android自带的Camera获取图片,上传至远程数据库中(mysql),以BLOB格式存储,

    但在提取图片时,始终无法在android界面显示,示例代码如下:

       .....  ....

       s = new Socket("192.168.0.68", 9999);
       din = new DataInputStream(s.getInputStream());

       ...   ...

       int size = din.readInt();//读取服务器端传来的图片数据
       byte[] bs = new byte[size];
       din.read(bs);

       Bitmap b = BitmapFactory.decodeByteArray(bs,0,bs.length);
       

       Log.i("kkk00",String.valueOf(b));//输出测试,bitmap始终为NUll

    解决方法:

    方法1:增加转码处理

       int size = din.readInt();//读取服务器端传来的图片数据
       byte[] bs = new byte[size];
       din.read(bs);

       YuvImage yuvimage=new YuvImage(bs, ImageFormat.NV21, 20,20, null);//20、20分别是图的宽度与高度
           ByteArrayOutputStream baos = new ByteArrayOutputStream();
           yuvimage.compressToJpeg(new Rect(0, 0,20, 20), 80, baos);//80--JPG图片的质量[0-100],100最高
           byte[] jdata = baos.toByteArray();

           Bitmap bmp = BitmapFactory.decodeByteArray(jdata, 0, jdata.length);

    测试:bmp不为空,放入控件中可正常显示。

    方法2:当图片以二进制形式传至服务器端时,将其存储到本机上,在以文件流的形式存入mysql数据库中

         .......

         int size = din.readInt();//读取图片数组的长度
         FileOutputStream fos = new FileOutputStream("c:/bbbb1.bmp"); 
         int len=0;
         byte[] mm=new byte[1024];
         while(true) {
          int m=din.read(mm);
          len=len+m;
          fos.write(mm,0,m);
          if(len>=size) break; 
         }
         fos.close();

         

        //在读取文件写入mysql

        ..... ...

         File file = new File("c:/bbbb1.bmp");  
         int length = (int) file.length();   
        InputStream fin = new FileInputStream(file); 
        pstmt.setBinaryStream (9, fin, length);

  • 相关阅读:
    批量SSH操作工具---OmniTTY安装
    CentOS6.6修改主机名和网络信息
    浪潮服务器通过ipmitool获取mac地址
    linux批量执行工具omnitty使用方法
    操作系统下查看HBA卡信息wwn的方法
    Linux下multipath多路径配置
    IPMITOOL 配置BMC用户设置
    第五讲 对于耦合的认识 target/action设计模式 delegate设计模式 手势识别器
    UI第四讲.事件处理(按钮点击切换视图,触摸事件)
    UI第三讲.自定义视图 视图控制器 检测屏幕旋转
  • 原文地址:https://www.cnblogs.com/exmyth/p/4773965.html
Copyright © 2011-2022 走看看