2009-07-08 9 views
3

Gibt es eine Möglichkeit, ein SVG zu schneiden. Ich meine jede schon vorhandene lib. Ich muss diese Slicing-Komponente in Java implementieren.Wie zeige ich einen Unterabschnitt oder ein "Segment" einer SVG-Grafik an?

Ich meine, ich habe einzelne SVG-Datei und basierte Lineale/Skalen ich grafisch wählen, ich möchte die einzelnen SVG in verschiedene SVG-Dateien schneiden.

Hoffnung Ich bin klar

+0

"Slicing" definieren Möchten Sie grafisch getrennte Teile erstellen oder logisch getrennte Dateien speichern? Oder ...? –

Antwort

0

Wenn Sie mit SVG in Java arbeiten, die Batik SVG Toolkit viel Funktionalität bieten wird (ich bekenne, ich weiß nicht, was du meinst durch Schneiden, jedoch)

+0

Ich habe versucht Batik, aber es unterstützt SVG Slicing-Betrieb. – Jijoy

0

Alles, was Sie tun müssen, ist das Bearbeiten des Tags <svg>. Bearbeiten Sie width und height, setzen Sie das Attribut viewBox auf dem Hauptelement svg auf das gewünschte Rechteck, rendern, wiederholen.

Jedes svg enthält alle Daten des Originals, zeigt aber nur den Teil der Zeichnung innerhalb des viewBox an. Siehe http://dingoskidneys.com/~dholth/svg/

viewbox = "x y width height" 
+0

Ich muss, schneiden Sie eine größere SVG und drehen Sie sie zu mehreren SVGS. zB: Ich habe ein großes Bild, und ich dividiere das ganze Rechteck in 9 Rechtecke basierend auf meiner Auswahl und die Ausgabe sollte diese neuen 9 SVG-Dateien sein, aus Inhalt innerhalb dieser Rechtecke gemacht. Ich hoffe ich bin klar? – Jijoy

+1

Es macht Sinn. Solange es Ihnen nichts ausmacht, dass die Slices die gleiche Größe auf der Festplatte haben, ist viewBox alles was Sie brauchen. – joeforker

+1

es ist keine Scheibe, wenn Sie die ganze Pizza 8 Mal essen müssen. –

5

Ja, obwohl, Sie würden denken, dass diese Verschlusssachen waren - oder einfach unmöglich - je nachdem, wie schwer es ist, diese grundlegende Tatsache zu finden ....

Offenbar, all you need to do is reference the viewBox from a URI "fragment".. Ich habe bestätigt, es funktioniert tatsächlich. Nehmen Sie das folgende Beispiel ... Die Lektion der Geschichte, falls Sie es vergessen haben, ist ... image.svg # svgView (viewBox (100.100.100.100))

image.svg definiert als <svg .... viewBox="0,0,400,400" width="400" height="400">

http://example.com/image.svg

svg linked with no viewBox attribute

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

enter image description here

+1

Das ist erstaunlich. Es bedeutet im Grunde, dass man uns eine einzige SVG-Datei als Sprite geben kann. Ich bin neugierig auf die Browser-Unterstützung dafür. – Emil