svg image

背景介绍,画svg的时候因为需要插入图片,然后生成的svg是要可以下载的,也就是要脱离web环境显示,那么xlink:href="url"的形势就不可以了,并且要插入的图片在图片服务器上,那么如何才能插入到svg中呢? 基本格式如下  其中ivBORw...这个是图片二进制流用base64编码后的图片数据,

data:同html的data类型的url类似,指明了data类型是 png类型图片 详细介绍请移步:https://www.cnblogs.com/wgw8299/archive/2011/02/06/1949453.html (有彩蛋,请不要在办公区查看此文章)





看过彩蛋了么?回归正题,下面的java方法是将图片uri,转化成指定类型的图片,并进行base64编码,然后返回编码后的图片数据

    public String dataUri(String imageType, String uri) {
        BASE64Encoder encoder = new BASE64Encoder();
        try(ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
            URL imageDate = new URL(uri);
            BufferedImage bi = ImageIO.read(imageDate.openStream());
            ImageIO.write(bi, imageType, baos);
            return encoder.encodeBuffer(baos.toByteArray());
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "";
    }

 

你可能感兴趣的:(Batik)