Problem beim Speichern eines von Raphael JS generierten SVG in einem Canvas

8

Ich versuche ein SVG zu konvertieren, das von Raphael JS erstellt wurde (und den Benutzer, da Sie die Bilder ziehen und drehen können). Ich folgte diesem SVG in Bild (JPEG, PNG, etc.) im Browser konvertieren kann es aber immer noch nicht bekommen.

Es muss einfach sein, aber ich kann nicht sagen, was ich falsch verstanden habe.

Ich habe meine Svg in einem Div mit #ec als id und die Canvas's ist #canvas .

%Vor%

Die Warnung gibt mir:

%Vor%

Das ist das xml der SVG und wenn ich canvg Dokumentation glaube, ist es gut.

Wie auch immer, mit diesem Code hat die Variable img , die die konvertierten Bilddaten haben sollte, die Daten eines leeren PNG mit den Dimensionen der SVG bekommen.

Das einzige, was ich denke, ist, dass die von Raphael JS generierte SVG für canvg nicht gut formatiert ist (wie href von image sollte xlink:href sein, wenn ich die W3C-Empfehlungen )

Hat jemand eine Idee zu diesem Problem? : D

    
Shikiryu 18.11.2010, 16:10
quelle

3 Antworten

6

canvg akzeptiert den SVG -Daten einen Dateipfad oder eine einzeilige Zeichenfolge

Aber in Ihrem Code übergeben Sie den HTML-Inhalt des div #ec as

%Vor%

Die Methoden $.html() von jQuery und DOM innerHTML geben den HTML-Inhalt eines Elements so wie er ist zurück, also höchstwahrscheinlich in mehreren Zeilen.

canvg interpretiert diesen mehrzeiligen HTML-Inhalt als Dateipfad,

%Vor%

und versucht, die Daten von der fehlerhaften URL abzurufen.

Der Konvertierungsvorgang von SVG nach Canvas ist fehlgeschlagen, und deshalb erhalten Sie das Bild nicht als erwartet.

Hier ist eine aktualisierte Version, die funktionieren sollte,

%Vor%     
Livingston Samuel 10.01.2011 10:32
quelle
2

svgfix.js wird diese Fehler beheben. Werfen Sie einen Blick auf diesen Blogbeitrag Raphael Grafik in Bild exportieren

    
Ignacio Vazquez 08.08.2012 12:41
quelle
1

Ich habe mit SVG - Bearbeiten gearbeitet und SVG-Bilder erstellt. Was wir getan haben, war ImageMagic auf dem Server (Sie haben es wahrscheinlich schon installiert).

Nach der Installation müssen Sie lediglich einen Befehl wie "convert foo.svg foo.png" im Terminal ausführen. Wenn Sie PHP verwenden, können Sie Folgendes tun:

%Vor%

In PHP und es ist fertig.

    
amosrivera 08.01.2011 17:53
quelle