Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未应用从svg到png的渐变_Java_Svg - Fatal编程技术网

Java 未应用从svg到png的渐变

Java 未应用从svg到png的渐变,java,svg,Java,Svg,我有一个SVG文件,我对它进行了更改,使其具有渐变 然后我将SVG转换为png,但是新的png中没有梯度变化 我试着用一个互联网转换器把SVG转换成png,但是它仍然没有通过梯度 当我用Illustrator打开svg文件时,我看不到渐变。当显示SVG文件的预览时,我可以看到渐变 我得到这个错误:org.apache.batik.bridge.BridgeException元素的属性d无效。 我的问题是: 如果有人遇到过类似的错误,或者对如何解决这个问题有想法,你能给我一些建议吗 这是我的转换器

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

然后我将
SVG
转换为
png
,但是新的
png
中没有梯度变化

我试着用一个互联网转换器把SVG转换成png,但是它仍然没有通过梯度

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

我得到这个
错误:org.apache.batik.bridge.BridgeException元素的属性d无效。

我的问题是:

如果有人遇到过类似的错误,或者对如何解决这个问题有想法,你能给我一些建议吗

这是我的转换器:

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>  
#国家路径#国家多边形{
填充:url(#grad1);过滤器:url(#dropshadow);}

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

问题在于SVG。但是,如果看不到这个问题,很难判断它是什么。你能把它寄出去吗?您列出的路径是有效的。它不应该导致错误。你确定是对的吗?是对的。我刚刚用lineargradient和style标签编辑了这篇文章。我看到你的路径也有一个过滤器。如果过滤器存在问题,则可能不会显示路径。所以我们仍然没有足够的信息来解决这个问题。请创建一个。发布SVG的精简版本,其中包括路径及其使用的所有资源(渐变和过滤器)。确认它在浏览器中工作,但在蜡染中失败。然后更新你的问题并将其包括在内。