JAVA_將二進制流轉換成圖片文件

1.  [代碼]將二進制流轉換成圖片文件 晚風工做室 www.soservers.com     跳至 [1] [全屏預覽]
001 importjava.io.ByteArrayInputStream;
002 importjava.io.File;
003 importjava.io.FileInputStream;
004 importjava.io.FileOutputStream;
005 importjava.io.InputStream;
006  
007 /**
008  * 將二進制流轉換成圖片文件
009  * @author 晚風工做室 www.soservers.com
010  *
011  */
012  
013 publicclassImgErToFileUtil {
014      
015     /**
016      * 將接收的字符串轉換成圖片保存
017      * @param imgStr 二進制流轉換的字符串
018      * @param imgPath 圖片的保存路徑
019      * @param imgName 圖片的名稱
020      * @return
021      *      1:保存正常
022      *      0:保存失敗
023      */
024     publicstaticintsaveToImgByStr(String imgStr,String imgPath,String imgName){
025 try{
026     System.out.println("===imgStr.length()====>"+ imgStr.length()
027             +"=====imgStr=====>"+ imgStr);
028 }catch(Exception e) {
029     e.printStackTrace();
030 }
031         intstateInt =1;
032         if(imgStr !=null&& imgStr.length() >0){
033             try{
034                  
035                 // 將字符串轉換成二進制,用於顯示圖片 
036                 // 將上面生成的圖片格式字符串 imgStr,還原成圖片顯示 
037                 byte[] imgByte = hex2byte( imgStr ); 
038      
039                 InputStream in =newByteArrayInputStream(imgByte);
040      
041                 File file=newFile(imgPath,imgName);//能夠是任何圖片格式.jpg,.png等
042                 FileOutputStream fos=newFileOutputStream(file);
043                    
044                 byte[] b =newbyte[1024];
045                 intnRead =0;
046                 while((nRead = in.read(b)) != -1) {
047                     fos.write(b,0, nRead);
048                 }
049                 fos.flush();
050                 fos.close();
051                 in.close();
052      
053             }catch(Exception e) {
054                 stateInt =0;
055                 e.printStackTrace();
056             }finally{
057             }
058         }
059         returnstateInt;
060     }
061      
062     /**
063      * 將二進制轉換成圖片保存
064      * @param imgStr 二進制流轉換的字符串
065      * @param imgPath 圖片的保存路徑
066      * @param imgName 圖片的名稱
067      * @return
068      *      1:保存正常
069      *      0:保存失敗
070      */
071     publicstaticintsaveToImgByBytes(File imgFile,String imgPath,String imgName){
072  
073         intstateInt =1;
074         if(imgFile.length() >0){
075             try{
076                 File file=newFile(imgPath,imgName);//能夠是任何圖片格式.jpg,.png等
077                 FileOutputStream fos=newFileOutputStream(file);
078                  
079                 FileInputStream fis =newFileInputStream(imgFile);
080                    
081                 byte[] b =newbyte[1024];
082                 intnRead =0;
083                 while((nRead = fis.read(b)) != -1) {
084                     fos.write(b,0, nRead);
085                 }
086                 fos.flush();
087                 fos.close();
088                 fis.close();
089      
090             }catch(Exception e) {
091                 stateInt =0;
092                 e.printStackTrace();
093             }finally{
094             }
095         }
096         returnstateInt;
097     }
098  
099     /**
100      * 二進制轉字符串
101      * @param b
102      * @return
103      */
104     publicstaticString byte2hex(byte[] b)// 二進制轉字符串
105     {
106         StringBuffer sb =newStringBuffer();
107         String stmp ="";
108         for(intn =0; n < b.length; n++) {
109             stmp = Integer.toHexString(b[n] &0XFF);
110             if(stmp.length() ==1) {
111                 sb.append("0"+ stmp);
112             }else{
113                 sb.append(stmp);
114             }
115  
116         }
117         returnsb.toString();
118     }
119  
120     /**
121      * 字符串轉二進制
122      * @param str 要轉換的字符串
123      * @return  轉換後的二進制數組
124      */
125     publicstaticbyte[] hex2byte(String str) {// 字符串轉二進制
126         if(str ==null)
127             returnnull;
128         str = str.trim();
129         intlen = str.length();
130         if(len ==0|| len %2==1)
131             returnnull;
132         byte[] b =newbyte[len /2];
133         try{
134             for(inti =0; i < str.length(); i +=2) {
135                 b[i /2] = (byte) Integer
136                         .decode("0X"+ str.substring(i, i +2)).intValue();
137             }
138             returnb;
139         }catch(Exception e) {
140             returnnull;
141         }
142     }
143      
144 }
相關文章
相關標籤/搜索