博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA_将二进制流转换成图片文件
阅读量:5796 次
发布时间:2019-06-18

本文共 3101 字,大约阅读时间需要 10 分钟。

hot3.png

1. 
[代码]将二进制流转换成图片文件 晚风工作室 www.soservers.com    
跳至
001 importjava.io.ByteArrayInputStream;
002 importjava.io.File;
003 importjava.io.FileInputStream;
004 importjava.io.FileOutputStream;
005 importjava.io.InputStream;
006  
007 /**
008  * 将二进制流转换成图片文件
009  * 晚风工作室 www.soservers.com
010  *
011  */
012  
013 publicclassImgErToFileUtil {
014      
015     /**
016      * 将接收的字符串转换成图片保存
017      * @param imgStr 二进制流转换的字符串
018      * @param imgPath 图片的保存路径
019      * @param imgName 图片的名称
020      *
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      *
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      *
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 }

转载于:https://my.oschina.net/u/187191/blog/129005

你可能感兴趣的文章
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
maven常用命令
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>
论国人的素质和一个公司的商业道德
查看>>
android ios主流浏览器User-Agent
查看>>
Oracle-09:聚合函数
查看>>
一分钟快速入门openstack
查看>>
一个好的管理者:场上暴君,场下朋友;工作魔鬼,生活好人
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
当TC遇到AI
查看>>
kafka-0.10.0官网翻译(一)入门指南
查看>>
PostgreSQL 用 CTE语法 + 继承 实现拆分大表
查看>>
【南京Meetup】不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享...
查看>>
(转)机器学习:偏差处理(2)
查看>>