Я пытаюсь преобразовать SVG-файлы, которые выводятся из инструмента командной строки (abcm2ps), в векторные графические объекты Android, но у меня возникают проблемы.
Мой процесс выглядит следующим образом:
- Создайте исходный файл SVG с помощью инструмента, упомянутого выше
- Запустите файл SVG через Inkscape, чтобы исправить размер страницы
- Еще раз запустите результат через Inkscape, чтобы сохранить его как обычныйSVG (где-то читал, что это может решить проблемы, но это не помогает)
- Попробуйте импортировать файл SVG в Android Studio безрезультатно
Я получаю сообщения об ошибкахнекоторые ссылочные идентификаторы не могут быть найдены.Я посмотрел в файл XML и заметил, что эта ошибка возникает только для ссылок, которые снова содержат ссылки.Пример:
<defs
id="defs6633">
<path
id="usharp"
class="fill"
d="m 136,-702 v 890 h 32 v -890 m 128,840 h 32 V -750 H 296 M 64,-464 v 116 l 338,-96 V -560 M 64,-118 V -2 l 338,-98 v -114"
inkscape:connector-curvature="0"
style="fill:currentColor" />
<use
id="sh0"
transform="matrix(0.018,0,0,0.018,-4,5)"
xlink:href="#usharp"
x="0"
y="0"
width="100%"
height="100%" />
</defs>
<use
x="44.5"
y="20"
xlink:href="#sh0"
id="use6635"
width="100%"
height="100%" />
Как видите, объект use6635
ссылается на sh0
, который снова ссылается на usharp
.
Другие места, где указанный объект не ссылается на другой объект, работают1023
Это известное ограничение преобразователя?Есть ли способ (предпочтительно инструмент командной строки) для выравнивания ссылочной иерархии, чтобы ссылаться только на объекты, которые не ссылаются на другие объекты?
РЕДАКТИРОВАТЬ: ОК, преобразование в EPS, а затем в SVGсоздает SVG, которые обрабатываются без предупреждения выше - теперь я получаю предупреждения о том, что масштабированная ширина штриха не поддерживается ...