Какую библиотеку я могу использовать для манипулирования файлами SVG?

PHP 4 & amp; 5 Решение:

readfile () не будет вызывать проблем с памятью, даже при отправке больших файлов самостоятельно. URL-адрес может использоваться как имя файла с этой функцией, если обертки fopen были включены.

http://php.net/manual/en/function.readfile.php

1
задан Jack7890 24 August 2010 в 02:13
поделиться

2 ответа

Одна из библиотек Qt имеет аналогичную функциональность, и вы, вероятно, сможете выполнять с ней большинство операций преобразования:

Qt SVG

0
ответ дан 2 September 2019 в 21:54
поделиться

Я не знаю библиотеки, которая напрямую удовлетворяет перечисленным вами требованиям, но я думаю, что эти вещи несложно написать, просто используя SVG DOM.

Для первой задачи кажется, что проще всего было бы просто сгруппировать две фигуры.


var shape1 = document.getElementById("shape1");
var shape2 = document.getElementById("shape2");
var newG = document.createElementNS(svgNs,"g");
shape1.parentNode.removeChild(shape1);
shape2.parentNode.removeChild(shape2);
newG.appendChild(shape1);
newG.appendChild(shape2);

Для второй задачи вы можете просто получить ограничивающую рамку фигуры и найти ее центральную точку.


var bbox = shape1.getBBox();
var centrePoint = {x:bbox.x + bbox.width/2, y:bbox.y + bbox.height/2};

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


var shape1Clone = shape1.cloneNode(true);
shape1Clone.setAttributeNS(null,"transform","scale(.75)") 

Чтобы автоматизировать это, чтобы вы могли запускать его на удаленной машине, вы можете использовать библиотеку Apache Batik и выполнять сценарии с помощью Rhino. Взгляните на это для примера, как это сделать:

2
ответ дан 2 September 2019 в 21:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: