Java将网络图片转成输入流以及将url转成InputStream问题

 更新时间:2023年01月11日 10:33:35   作者:苍穹之跃  
这篇文章主要介绍了Java将网络图片转成输入流以及将url转成InputStream问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

将网络图片转成输入流以及将url转成InputStream

private static InputStream getImageStream(String url) {
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
            connection.setReadTimeout(5000);
            connection.setConnectTimeout(5000);
            connection.setRequestMethod("GET");
            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                InputStream inputStream = connection.getInputStream();
                return inputStream;
            }
        } catch (IOException e) {
            log.info("获取网络图片出现异常,图片路径为:" + url);
            e.printStackTrace();
        }
        return null;
    }

Java将图片转成Base64

在日常的开发中,图片展示是一个经常见的开发任务,而图片展示也有好多种方式。

但也有一种是通过转成Base64编码来完成。

下面就是通过流转成Base64编码的主要代码。

try (InputStream in = null;
     ByteArrayOutputStream out = new ByteArrayOutputStream()) {
            //建一个空的字节数组
            byte[] result = null;
              in=.........(获取你的图片的输入流)
            byte[] buf = new byte[1024];
            //用来定义一个准备接收图片总长度的局部变量
            int len;
            //将流的内容读取到buf内存中
            while ((len = in.read(buf)) > 0) {
                //将buf内存中的内容从0开始到总长度输出出去
                out.write(buf, 0, len);
            }
            //将out中的流内容拷贝到一开始定义的字节数组中
            result = out.toByteArray();
            //通过util包中的Base64类对字节数组进行base64编码
            String base64 = Base64.getEncoder().encodeToString(result);
        } catch (Exception e) {
            e.printStackTrace();
        }

以上就是Java转成Base64的主要逻辑代码,剩下的就是将这段逻辑套入到你自己的代码里面。

注:如果需要返回到前端展示则需要加上一个前缀:

String code = "data:Image/" + "你的图片格式(例如:JPG/PNG)等等" + ";base64," + base64;

如果前端需要展示图片,就将code返回给前端。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Arrays.sort()和lambda表达式

    基于Arrays.sort()和lambda表达式

    这篇文章主要介绍了Arrays.sort()和lambda表达式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • JavaWeb实现简单文件上传功能

    JavaWeb实现简单文件上传功能

    这篇文章主要为大家详细介绍了JavaWeb实现简单文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 第一次编写Java流布局图形界面

    第一次编写Java流布局图形界面

    这篇文章主要为大家详细介绍了第一次编写Java流布局图形界面的相关代码,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • java验证码组件kaptcha使用方法

    java验证码组件kaptcha使用方法

    这篇文章主要介绍了java验证码组件kaptcha使用方法,很不错的一个组件,可以在JAVA开发中使用,大家都试试吧
    2013-11-11
  • Java Properties作为集合三个方法详解

    Java Properties作为集合三个方法详解

    Properties是JDK1.0中引入的java类,目前也在项目中大量使用,主要用来读取外部的配置,那除了这个,你对它其他的一些api也了解吗? 你了解它是怎么实现的吗? 如果不清楚的话,就通过本篇文章带你一探究竟
    2022-11-11
  • java删除指定目录下指定格式文件的方法

    java删除指定目录下指定格式文件的方法

    这篇文章主要为大家详细介绍了java删除指定目录下指定格式文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 解决swaggerUI页面没有显示Controller方法的坑

    解决swaggerUI页面没有显示Controller方法的坑

    这篇文章主要介绍了解决swaggerUI页面没有显示Controller方法的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Spring关于@Scheduled限制的问题

    Spring关于@Scheduled限制的问题

    这篇文章主要介绍了Spring关于@Scheduled限制的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringCloudGateway路由失效问题

    SpringCloudGateway路由失效问题

    本文主要分析了SpringCloudGateway整合nacos时路由失效的问题,作者通过断点跟踪发现在RouteToRequestUrlFilter类中报错,原因是在读取配置文件的时候,没有解析到对应的host主机,进一步发现这里包含了一段正则表达式验证,验证配置的服务名称是否合法
    2024-10-10
  • java 线程池keepAliveTime的含义说明

    java 线程池keepAliveTime的含义说明

    这篇文章主要介绍了java 线程池keepAliveTime的含义说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论