根据URL下载图片并转换为Base64

根据URL下载图片并转换为Base64

笔者今天遇到一个需求,需要将图片转换为Base64编码作为参数来做接口对接。看似是个小问题,但是平时用得少,就记下来了。

private static String transUrlToBase64(String imgUrl){
        URL url;
        InputStream inputStream = null;
        ByteArrayOutputStream outputStream = null;
        try {
            url = new URL(imgUrl); 
            inputStream = url.openStream();
            outputStream = new ByteArrayOutputStream();
            IOUtils.copy(inputStream,outputStream);
            byte[] byteArray = outputStream.toByteArray();
            return Base64.getEncoder().encodeToString(byteArray);
        } catch (IOException e) {
            log.error(ExceptionUtil.stacktraceToString(e));
        }finally {
            try {
                if (inputStream != null) inputStream.close();
                if (outputStream != null) outputStream.close();
            } catch (IOException e) {
                log.error(ExceptionUtil.stacktraceToString(e));
            }
        }
        return null;
    }

其中用到了一些工具类:
IOUtils.copy(InputStream,OutputStream);
ExceptionUtil.stacktraceToString(e);

IOUtils属于commons-io包
ExceptionUtil属于hutool-all(exception)包

希望对大家有用!!!

你可能感兴趣的:(java)