Server-side metoda skrypt
Oto prosty sposób, aby zapisać elementy SVG do PNG (choć używa skryptów po stronie serwera, który może być różny od tego, co można się spodziewać): kasę this page.
Zgodnie z dokumentacją autora, klient wyodrębnia element svg (przy użyciu XMLSerializer.serializeToString) i wysyła go na serwer; serwer konwertuje go na png i odsyła z powrotem do klienta. Serwer może korzystać z dowolnego wygodnego programu (w tym przypadku rsvg-convert).
Canvg biblioteka
Możesz użyć tej biblioteki to zrobić po stronie klienta (check it out!):
canvg is a SVG parser and renderer. It takes a URL to a SVG file or the text of an SVG file, parses it in JavaScript, and renders the result on a Canvas element
używać go tak:
//load a svg snippet in the canvas with id = 'drawingArea'
canvg(document.getElementById('drawingArea'), '<svg>... </svg>')
Następnie można użyć metody toDataURL: document.getElementById('drawingArea').toDataURL('image/png');
Oto przykład, jak to zrobić w Chrome: http://bl.ocks.org/3831266 – Duopixel
dzięki! to działa ... ale kiedy próbuję otworzyć plik w programie Illustrator, prosi mnie o sprawdzenie pliku. Mam komunikat: ten plik svg jest nieprawidłowy. Zatwierdź przed otwarciem. –
Znajdź walidator XML i upewnij się, że jest prawidłowy XML. Jeśli wszystko wydaje się w porządku, opublikuj kod w swoim pytaniu i pomogę Ci znaleźć błąd powodujący potknięcie się programu Illustrator. – Duopixel