Java对网络图片/本地图片转换成Base64编码和解码

一、将本地图片转换成Base64编码字符串

/** * 将本地图片转换成Base64编码字符串 * * @param imgFile 图片目录路径 * @return */ public static String getImgFileToBase64(String imgFile) { //将图片文件转化为字节数组字符串,并对其进行Base64编码处理 InputStream inputStream = null; byte[] buffer = null; //读取图片字节数组 try { inputStream = new FileInputStream(imgFile); int count = 0; while (count == 0) { count = inputStream.available(); } buffer = new byte[count]; inputStream.read(buffer); } catch (IOException e) { e.printStackTrace(); } finally { if (inputStream != null) { try { // 关闭inputStream流 inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } // 对字节数组Base64编码 return new BASE64Encoder().encode(buffer); }

二、将网络图片转换成Base64编码字符串

/**     * 将网络图片转换成Base64编码字符串     *     * @param imgUrl 网络图片Url     * @return     */    public static String getImgUrlToBase64(String imgUrl) {        InputStream inputStream = null;        ByteArrayOutputStream outputStream = null;        byte[] buffer = null;        try {            // 创建URL            URL url = new URL(imgUrl);            // 创建链接            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            conn.setRequestMethod('GET');            conn.setConnectTimeout(5000);            inputStream = conn.getInputStream();            outputStream = new ByteArrayOutputStream();            // 将内容读取内存中            buffer = new byte[1024];            int len = -1;            while ((len = inputStream.read(buffer)) != -1) {                outputStream.write(buffer, 0, len);            }            buffer = outputStream.toByteArray();        } catch (IOException e) {            e.printStackTrace();        } finally {            if (inputStream != null) {                try {                    // 关闭inputStream流                    inputStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (outputStream != null) {                try {                    // 关闭outputStream流                    outputStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        // 对字节数组Base64编码        return new BASE64Encoder().encode(buffer);    }

三、将网络链接图片或者本地图片文件转换成Base64编码字符串(就是对上面的两种进行整合)

/** * 将网络链接图片或者本地图片文件转换成Base64编码字符串 * * @param imgStr 网络图片Url/本地图片目录路径 * @return */ public static String getImgStrToBase64(String imgStr) { InputStream inputStream = null; ByteArrayOutputStream outputStream = null; byte[] buffer = null; try { //判断网络链接图片文件/本地目录图片文件 if (imgStr.startsWith('http://') || imgStr.startsWith('https://')) { // 创建URL URL url = new URL(imgStr); // 创建链接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod('GET'); conn.setConnectTimeout(5000); inputStream = conn.getInputStream(); outputStream = new ByteArrayOutputStream(); // 将内容读取内存中 buffer = new byte[1024]; int len = -1; while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } buffer = outputStream.toByteArray(); } else { inputStream = new FileInputStream(imgStr); int count = 0; while (count == 0) { count = inputStream.available(); } buffer = new byte[count]; inputStream.read(buffer); } } catch (Exception e) { e.printStackTrace(); } finally { if (inputStream != null) { try { // 关闭inputStream流 inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (outputStream != null) { try { // 关闭outputStream流 outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } // 对字节数组Base64编码 return new BASE64Encoder().encode(buffer); }

四、将图片Base64编码转换成img图片文件(解码)

/**     * 将图片Base64编码转换成img图片文件     *     * @param imgBase64 图片Base64编码     * @param imgPath   图片生成路径     * @return     */    public static boolean getImgBase64ToImgFile(String imgBase64, String imgPath) {        boolean flag = true;        OutputStream outputStream = null;        try {            // 解密处理数据            byte[] bytes = new BASE64Decoder().decodeBuffer(imgBase64);            for (int i = 0; i < bytes.length; ++i) {                if (bytes[i] < 0) {                    bytes[i] += 256;                }            }            outputStream = new FileOutputStream(imgPath);            outputStream.write(bytes);        } catch (Exception e) {            e.printStackTrace();            flag = false;        } finally {            if (outputStream != null) {                try {                    // 关闭outputStream流                    outputStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }        return flag;    }
(0)

相关推荐

  • java之通过FileChannel实现文件复制

    java之通过FileChannel实现文件复制

  • 如何将大批量的JPG格式图片转换成PNG格式并保存?

    最近有电商小伙伴咨询在一些网购平台上所采集的图片格式不一样,有没有办法转换图片格式?其实这个问题只要是做电商的朋友都会遇到的.而且在平常的工作里偶尔也有需要转换图片格式的需求.今天我就给您们介绍一下如 ...

  • Blender把图片转换成模型的方法介绍

    CG世界 今天 以下文章来源于Thepoly ,作者Thepoly ThepolyHello . 大家好 今天将给大家带来图片转模型的小方法 我是MEOXD 虽然听起来好像用的时候不多,但是我想说书到 ...

  • 不用CAD描图迅速将图片转换成su模型

    做中式模型,感觉描图拉伸模型太费劲,想了个办法用软件转换,虽然步骤多了些,但感觉效果还是不错的,下面我粗略的讲讲.抛砖引玉哈,大家多提意见.    首先上图,说明一下大概的流程: 1.[ps阶段]首先 ...

  • 图片转换成文字,职场技能分享

    现在随着互联网的智能发展,网络上的有关工作或者学习的资源真的很多,不过这些工作学习内容的文字形式大多都是以不可复制的格式文件分享或者是图片分享.而如果我们选择一点一点的去打字的话难免有些麻烦,因此这个 ...

  • 职场技巧中需要学会的技能之一:图片转换成文字

    现在随着互联网的智能发展,网络上的有关工作或者学习的资源真的很多,不过这些工作学习内容的文字形式大多都是以不可复制的格式文件分享或者是图片分享.而如果我们选择一点一点的去打字的话难免有些麻烦,因此这个 ...

  • 手机怎么将图片转换成word文档

    点击蓝字|关注我们 每次想要把图片转换成Word文档,都要打开电脑?nonono,最近发现一个好方法,手机就能将图片转换成Word文档,简单方法,几秒搞定. 1.打开手机应用市场,在搜索栏输入&quo ...

  • 怎么把手机上的图片转换成文字或者表格?

    丽丽刚刚得到了一种实用的操作,这个操作是可以将图片转换成文字或表格,利用这种操作我们可以大大提升我们在某些工作领域上的工作效率,比如文字编辑从事者!因为网络上虽然有很多优质的文章素材资源可以借鉴,但是 ...

  • 想把手机的图片转换成文字,有什么省事的方法?

    如果不是亲眼所见,小峰还真不敢相信,现如今,还有人在使用扫描仪器来扫描图片中的文字,当然,扫描仪器毕竟是很专业的设备,识别的准确度也是挺高的,只是个人觉得,这种方法真心不太方便,毕竟谁也不能保证都有一 ...

  • 通过手机快速将表格图片转换成excel表格的教程

    在现在的日常生活中,我们能够借助手机完成的处理操作真的是越发的丰富了,拍照美颜,微信支付宝等等这些常用的操作就不用说了,我想说的是,居然可以借助手机快速将表格中的图片转换excel表格这种操作.真的是 ...