从svg到png的渐变未应用

时间:2019-05-09 08:08:34

标签: java svg

我有一个SVG文件,我对其进行了更改,使其具有渐变。

然后,我将SVG转换为png,但是新的png中没有渐变。

我尝试使用Internet转换器将SVG转换为png,但是它仍然没有通过渐变。

当我用Illustrator打开svg文件时,看不到渐变。显示SVG文件的预览后,我可以看到渐变。

我得到这个error: org.apache.batik.bridge.BridgeException The attribute d of the element <path> is invalid.

我的问题是:

如果有人遇到类似错误或对如何解决此问题有任何想法,可以给我一些建议吗?

这是我的转换器:

public void svgToPng() throws MalformedURLException {

    String svg= "/Users/userName/svg/";
    File folder = new File(svg);

    for (File fileEntry : folder.listFiles()) {

        String[] codigoAux = fileEntry.getName().split("\\.");

        if (codigoAux[0].isEmpty()) {

            LOGGER.debug("Name of file is empty");

        } else {
            try {

                PNGTranscoder transcoder = new PNGTranscoder();

                String svgURI = fileEntry.toURI().toURL().toString();
                TranscoderInput input = new TranscoderInput(svgURI);

                String outputPath = "/Users/userName/png/";

                OutputStream ostream = new FileOutputStream(outputPath + codigoAux[0] + ".png");
                TranscoderOutput output = new TranscoderOutput(ostream);

                transcoder.transcode(input, output);

                ostream.flush();
                ostream.close();


            }catch (TranscoderException ex) {

                LOGGER.error(ex);

            } catch (IOException ex) {

                LOGGER.error(ex);

            }

        }


    }

}

这是我的svg中的元素路径:

<path fill="#D1E9FD" d="M7095.36-13.684c800.463,818.206,1299.013,1969.505,1299.013,3244.739             c0,633.732-123.293,1236.744-345.429,1783.602H305.852C83.733,4467.799-39.558,3864.79-39.558,3231.055             c0-1275.234,498.537-2426.534,1299.021-3244.739H7095.36z"></path>

这是我在SVG中的渐变:

<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">        
    <stop offset="0%" style="stop-color:#FFFFFF;stop-opacity:1"></stop>        
    <stop offset="100%" style="stop-color:#FFE69C;stop-opacity:1"></stop>    
</linearGradient>

这是我对渐变的引用:

<style>        #Countries path, #Countries polygon {        
fill: url(#grad1);        filter: url(#dropshadow);        }    
</style>  

我希望输出的图像是具有SVG文件预览中渐变的PNG图像。

0 个答案:

没有答案