У меня был один SVG
файл, я изменил его, чтобы он имел градиент.
Затем я конвертирую SVG
в png
, но изменение градиента отсутствует в новом png
.
Я пытался преобразовать SVG
в png
с помощью интернет-конвертера, но он все еще не проходит градиент.
Когда я открываю файл svg
в Illustrator, я не вижу градиент.Когда отображается предварительный просмотр файла 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>
Я ожидаю, что на выходе будет изображение PNG с градиентом, который у меня есть в предварительном просмотре моего SVG-файла.