Я изо всех сил пытался сделать что-то, что казалось бы довольно простым:
В Inkscape, как я могу одновременно изменить размер документа и его содержимого (т.е. чертежей)?
Немного контекста: я хочу изменить размер довольно большого количества документов SVG из The Noun Project (обычно это документы размером 100x100px) без необходимости явного изменения размера реальных чертежей.
NB: Если есть решение для командной строки, я тоже могу с этим работать!
Ответы:
Вы не упомянули, какую ОС вы используете. Я использую Ubuntu, и я смог успешно использовать librsvg2.
Если у вас есть доступ к Ubuntu, вот что вы можете сделать. Сначала установите librsvg2:
Затем
cd
перейдите в каталог, в котором есть ваши SVG (убедитесь, что в нем есть только SVG!) И используйте команду, подобную следующей:Это создаст новый пакет SVG с размерами 200 на 200 пикселей и сохранен как «original-file-name.new.svg»
Расчет размеров несколько сбивает с толку. Для преобразования SVG в SVG вам нужно немного по математике. В таких случаях параметры "height" и "width" в rsvg-convert используют pt, а не px, поэтому используйте 80, если вы хотите 100px, 120, если вы хотите 150px, и так далее.
Вы также можете использовать rsvg-convert для вывода PNG. Это намного лучше при растеризации файла, чем ImageMagick, по крайней мере, по моему опыту. Обратите внимание, что вам нужно изменить
-f
наpng
, вам нужно изменить шаблон сохранения вывода с's/svg$/new.svg/'
на's/svg$/png/'
, и вы вводите ширину и высоту, которые вы хотите, в качестве значений пикселей.источник
rsvg-convert
как таковой:rsvg-convert noun_project_1576.svg -w 320 -h 160 -f svg -o noun_project_1576-skewed.svg
он возьмет исходный файл с именем «noun_project_1576», переместит его на 400px на 200px и переименует в «noun_project_1576-skewed».librsvg
исправлена ошибка сВ настоящее время в Inkscape нет собственного способа сделать это. Единственный способ - изменить размер содержимого и документа отдельно.
источник
Хотя есть несколько способов сделать это - как отмечалось здесь, - один из способов, который может действительно хорошо работать, это использовать a
viewBox
. Вы просто изменяете содержимое тега SVG следующим образом:Что
viewBox
он определяет, так это определяет внутреннюю систему координат для документа. Вы можете легко масштабировать документ просто, изменивwidth
иheight
атрибуты по мере необходимости.Обратите внимание, что есть некоторые недостатки. Во-первых, есть только определенные контексты, в которых это работает, особенно если вы каким-то образом напрямую включаете документ SVG на страницу разметки. Использование
<img>
тега с этим может или не может привести к неожиданным результатам. Вам нужно будет провести собственное исследование, чтобы выяснить, как лучше всего это сделать.источник