JAVA实现网络/本地图片转BASE64存储

网络图片转BASE64

           String encoder = "data:image/jpg;base64,"; //定义图片类型,方便前端直接使用
            ByteArrayOutputStream data = new ByteArrayOutputStream();
            URL url = new URL(picUrl);//picUrl为图片地址
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            InputStream is = connection.getInputStream();
            byte[] bytes = new byte[1024];
            int len = 0;
            while ((len = is.read(bytes)) != -1){
                data.write(bytes,0,len);
            }
            is.close();
            BASE64Encoder base64Encoder = new BASE64Encoder();
            encoder = encoder +  base64Encoder.encode(data.toByteArray()).replace("
","").trim();//这里去掉结果里面的"
",也可以不去,但是不去的话需要使用的时候还是要去掉,所以为了方便就先去掉再存储

如果是本地图片的话,其实和网络图片相差不多的,主要就是读取图片流的形式变一下

    String encoder = "data:image/jpg;base64,"; //定义图片类型,方便前端直接使用
    ByteArrayOutputStream data = new ByteArrayOutputStream();
    String filePath = "filePath";//这里的filePath为本地存放图片的地址
    FileInputStream is = new FileInputStream(filePath);
    byte[] bytes = new byte[1024];
            int len = 0;
            while ((len = is.read(bytes)) != -1){
                data.write(bytes,0,len);
            }
            is.close();
            BASE64Encoder base64Encoder = new BASE64Encoder();
            encoder = encoder +  base64Encoder.encode(data.toByteArray()).replace("
","").trim();//这里去掉结果里面的"
",也可以不去,但是不去的话需要使用的时候还是要去掉,所以为了方便就先去掉再存储

若有问题,可以留言探讨。

网络图片转BASE64            String encoder = "data:image/jpg;base64,"; //定义图片类型,方便前端直接使用             ByteArrayOutputStream data = new ByteArrayOutputStream(); URL url = new URL(picUrl);//picUrl为图片地址 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream is = connection.getInputStream(); byte[] bytes = new byte[1024]; int len = 0; while ((len = is.read(bytes)) != -1){ data.write(bytes,0,len); } is.close(); BASE64Encoder base64Encoder = new BASE64Encoder(); encoder = encoder + base64Encoder.encode(data.toByteArray()).replace(" ","").trim();//这里去掉结果里面的" ",也可以不去,但是不去的话需要使用的时候还是要去掉,所以为了方便就先去掉再存储 如果是本地图片的话,其实和网络图片相差不多的,主要就是读取图片流的形式变一下     String encoder = "data:image/jpg;base64,"; //定义图片类型,方便前端直接使用     ByteArrayOutputStream data = new ByteArrayOutputStream();     String filePath = "filePath";//这里的filePath为本地存放图片的地址     FileInputStream is = new FileInputStream(filePath);   byte[] bytes = new byte[1024];   int len = 0; while ((len = is.read(bytes)) != -1){ data.write(bytes,0,len); } is.close(); BASE64Encoder base64Encoder = new BASE64Encoder(); encoder = encoder + base64Encoder.encode(data.toByteArray()).replace(" ","").trim();//这里去掉结果里面的" ",也可以不去,但是不去的话需要使用的时候还是要去掉,所以为了方便就先去掉再存储 若有问题,可以留言探讨。
经验分享 程序员 微信小程序 职场和发展