zoukankan      html  css  js  c++  java
  • Java 图片与byte数组互相转换

    Java 图片与byte数组互相转换

    //图片到byte数组
        public byte[] image2byte(String path){
         byte[] data = null;
          FileImageInputStream input = null;
          try {
            input = new FileImageInputStream(new File(path));
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            int numBytesRead = 0;
           while ((numBytesRead = input.read(buf)) != -1) {
           output.write(buf, 0, numBytesRead);
           }
           data = output.toByteArray();
           output.close();
           input.close();
         }
         catch (FileNotFoundException ex1) {
           ex1.printStackTrace();
         }
         catch (IOException ex1) {
           ex1.printStackTrace();
         }
         return data;
       }
    
    //byte数组到图片
        public void byte2image(byte[] data,String path){
          if(data.length<3||path.equals("")) return;
         try{
          FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
          imageOutput.write(data, 0, data.length);
          imageOutput.close();
          System.out.println("Make Picture success,Please find image in " + path);
          } catch(Exception ex) {
           System.out.println("Exception: " + ex);
           ex.printStackTrace();
         }
       }
       //byte数组到16进制字符串
       public String byte2string(byte[] data){
         if(data==null||data.length<=1) return "0x";
         if(data.length>200000) return "0x";
         StringBuffer sb = new StringBuffer();
         int buf[] = new int[data.length];
         //byte数组转化成十进制
         for(int k=0;k<data.length;k++){
           buf[k] = data[k]<0?(data[k]+256):(data[k]);
         }
         //十进制转化成十六进制
         for(int k=0;k<buf.length;k++){
           if(buf[k]<16) sb.append("0"+Integer.toHexString(buf[k]));
           else sb.append(Integer.toHexString(buf[k]));
         }
         return "0x"+sb.toString().toUpperCase();
       } 
    
  • 相关阅读:
    MDA模型定义及扩展
    java中 i = i++和 j = i++ 的区别
    nginx+tomcat负载均衡和session复制
    HDU 4010.Query on The Trees 解题报告
    codeforces 165D.Beard Graph 解题报告
    zoj 3209.Treasure Map(DLX精确覆盖)
    hdu 1155 Bungee Jumping
    选择Nginx的理由
    九九乘法表
    K
  • 原文地址:https://www.cnblogs.com/stilldream/p/13614181.html
Copyright © 2011-2022 走看看