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

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

import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream; /** * 将二进制流转换成图片文件 *  * */ public class ImgErToFileUtil {         /**     * 将接收的字符串转换成图片保存     * @param imgStr 二进制流转换的字符串     * @param imgPath 图片的保存路径     * @param imgName 图片的名称     * @return     *      1:保存正常     *      0:保存失败     */    public static int saveToImgByStr(String imgStr,String imgPath,String imgName){try {    System.out.println("===imgStr.length()====>" + imgStr.length()            + "=====imgStr=====>" + imgStr);} catch (Exception e) {    e.printStackTrace();}        int stateInt = 1;        if(imgStr != null && imgStr.length() > 0){            try {                                 // 将字符串转换成二进制,用于显示图片                 // 将上面生成的图片格式字符串 imgStr,还原成图片显示                 byte[] imgByte = hex2byte( imgStr );                      InputStream in = new ByteArrayInputStream(imgByte);                     File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等                FileOutputStream fos=new FileOutputStream(file);                                   byte[] b = new byte[1024];                int nRead = 0;                while ((nRead = in.read(b)) != -1) {                    fos.write(b, 0, nRead);                }                fos.flush();                fos.close();                in.close();                 } catch (Exception e) {                stateInt = 0;                e.printStackTrace();            } finally {            }        }        return stateInt;    }         /**     * 将二进制转换成图片保存     * @param imgStr 二进制流转换的字符串     * @param imgPath 图片的保存路径     * @param imgName 图片的名称     * @return     *      1:保存正常     *      0:保存失败     */    public static int saveToImgByBytes(File imgFile,String imgPath,String imgName){         int stateInt = 1;        if(imgFile.length() > 0){            try {                File file=new File(imgPath,imgName);//可以是任何图片格式.jpg,.png等                FileOutputStream fos=new FileOutputStream(file);                                 FileInputStream fis = new FileInputStream(imgFile);                                   byte[] b = new byte[1024];                int nRead = 0;                while ((nRead = fis.read(b)) != -1) {                    fos.write(b, 0, nRead);                }                fos.flush();                fos.close();                fis.close();                 } catch (Exception e) {                stateInt = 0;                e.printStackTrace();            } finally {            }        }        return stateInt;    }     /**     * 二进制转字符串     * @param b     * @return     */    public static String byte2hex(byte[] b) // 二进制转字符串    {        StringBuffer sb = new StringBuffer();        String stmp = "";        for (int n = 0; n < b.length; n++) {            stmp = Integer.toHexString(b[n] & 0XFF);            if (stmp.length() == 1) {                sb.append("0" + stmp);            } else {                sb.append(stmp);            }         }        return sb.toString();    }     /**     * 字符串转二进制     * @param str 要转换的字符串     * @return  转换后的二进制数组     */    public static byte[] hex2byte(String str) { // 字符串转二进制        if (str == null)            return null;        str = str.trim();        int len = str.length();        if (len == 0 || len % 2 == 1)            return null;        byte[] b = new byte[len / 2];        try {            for (int i = 0; i < str.length(); i += 2) {                b[i / 2] = (byte) Integer                        .decode("0X" + str.substring(i, i + 2)).intValue();            }            return b;        } catch (Exception e) {            return null;        }    }     }来源:转载

 

转载于:https://www.cnblogs.com/jiqiyoudu/p/6087783.html

你可能感兴趣的文章
公布windows的&quot;Universal Apps&quot; Unity3D游戏
查看>>
Android画图监听接口OnPreDrawListener具体解释
查看>>
D3DXMatrixMultiply 函数
查看>>
利用JasperReport+iReport进行Web报表开发
查看>>
大师画PCB板子
查看>>
最简单打开三星s9USB调试模式的步骤
查看>>
迟到的周总结
查看>>
Hibernate(五)注解开发多对多
查看>>
CSS3笔记
查看>>
HDU - 6081 2017百度之星资格赛 度度熊的王国战略
查看>>
Android游戏开发研究帧动画实现
查看>>
SpringMVC轻松学习-其他常用(四)
查看>>
隔天开启tomcat spring报错
查看>>
java自带的MD5
查看>>
Linq to sql 增删改查(转帖)
查看>>
自我介绍
查看>>
倍增实现LCA
查看>>
机器学习---笔记----numpy和math包中的常用函数
查看>>
对exists用法的一点点总结
查看>>
递归实现全排列算法-161029
查看>>