Как показать подраздел или часть SVG-графики?

Есть ли способ нарезать SVG . Я имею в виду любую уже доступную библиотеку. Мне нужно реализовать этот компонент нарезки на Java.

Я имею в виду, что у меня есть один файл SVG и линейки/шкалы на основе, которые я выбираю графически, я хочу разбить один файл SVG на разные файлы SVG.

Надеюсь, я ясно


person Jijoy    schedule 08.07.2009    source источник
comment
Определите нарезку. Вы хотите создавать графически отдельные части или хранить логически отдельные файлы? Или ...?   -  person Joachim Sauer    schedule 08.07.2009


Ответы (4)


Да, хотя вы могли бы подумать, что это секретная информация — или просто невозможная — исходя из того, как трудно найти этот основной факт...

Очевидно, все, что вам нужно сделать, это ссылаться на viewBox из «фрагмента» URI.. Подтверждаю, действительно работает. Возьмем следующий пример... Урок этой истории, если вы его упустили, таков... image.svg#svgView(viewBox(100,100,100,100))

image.svg определяется как <svg .... viewBox="0,0,400,400" width="400" height="400">

http://example.com/image.svg

SVG связан без атрибута viewBox

http://example.com/image.svg#svgView(viewBox(100,100,100,100))

введите здесь описание изображения

person Alex Gray    schedule 11.07.2011
comment
Это потрясающе. По сути, это означает, что в качестве спрайта можно использовать один SVG-файл. Меня интересует поддержка браузера для этого. - person Emil; 20.11.2012

Если вы работаете с SVG в Java, Batik SVG Toolkit предоставит множество функций ( Признаюсь, я не знаю, что вы подразумеваете под нарезкой, однако)

person Brian Agnew    schedule 08.07.2009
comment
Я пробовал Batik , но он поддерживает операцию нарезки SVG. - person Jijoy; 11.07.2009

Все, что вам нужно сделать, это отредактировать тег <svg>. Отредактируйте width и height, установите атрибут viewBox в основном элементе svg на нужный прямоугольник, визуализируйте, повторите.

Каждый svg будет содержать все данные из оригинала, но будет отображать только часть рисунка внутри viewBox. См. http://dingoskidneys.com/~dholth/svg/.

viewbox = "x y width height"
person joeforker    schedule 10.08.2009
comment
Мне нужно нарезать SVG большего размера и превратить их в несколько SVGS. например: у меня есть большая картинка, и я делю весь прямоугольник на 9 прямоугольников на основе моего выбора, и на выходе должны быть эти новые 9 файлов SVG, состоящие из содержимого внутри этих прямоугольников. Я надеюсь понятно? - person Jijoy; 12.08.2009
comment
Это имеет смысл. Пока вы не возражаете против того, чтобы фрагменты были одинакового размера на диске, viewBox — это все, что вам нужно. - person joeforker; 12.08.2009
comment
это не кусок, если вам нужно съесть всю пиццу 8 раз. - person Alex Gray; 11.07.2011

Если вашей целью при нарезке svg было создание «горячих ссылок» или карты изображений… вот как это сделать!

Просто нарежьте svg в Illustrator, а затем при сохранении («Сохранить как») svg обязательно получите код («SVG-код» внизу), который будет включать ссылки на фрагменты, такие как:

<rect id="_x3C_Slice_x3E__1_" x="88" y="22.5" class="yj4" width="227" height="88"/>

которые СВЯЗЫВАЮТСЯ путем окружения тегом ссылки:

<a href="#"><rect id="_x3C_Slice_x3E__1_" x="88" y="22.5" class="yj4" width="227" height="88"/></a>

Надеюсь это поможет.

person cssninja    schedule 13.04.2020