2016-04-19 16 views
6

Vorrei convertire un SVG in PNG in un Web Worker. Il mio problema è che il DOM non è accessibile dall'interno del lavoratore, quindi non posso disegnare l'SVG su una tela o qualcosa del genere.Converti da SVG a PNG in Web Worker

+1

Forse puoi sfruttare Inkscape o ImageMagick? (Non ho avuto occasione di giocare con i web-worker) A patto che tu abbia un ambiente eseguibile pieno di calorie, puoi usare uno dei due suggerimenti precedenti. Per ulteriori informazioni, consultare: http://stackoverflow.com/questions/9853325/how-to-convert-a-svg-to-a-png-with-image-magick – enhzflep

risposta

2

Weeell, puoi sempre analizzare manualmente l'SVG e creare una bitmap da questo, ma (!) È un po 'più di lavoro ovviamente dato che dovresti creare un parser SVG e uno scrittore PNG, per non parlare rasterizzazione del codice per linee e riempimento poligonale a due modi incl. anti-aliasing, pattern, matrice, composizione, fusione e supporto del gradiente. Però potrebbe essere un buon progetto per il fine settimana :)

Tuttavia, una nota più seria: è possibile farlo solo con gli strumenti integrati utilizzando il contesto regolare (nessuno-webworker) o, facoltativamente, impostare un servizio basato sul server.

+0

Grazie per la risposta. Sto creando un servizio web. Sarebbe stata una soluzione più semplice fare la conversione direttamente su un secondo thread, perché disegnerò lo stesso SVG in varie scale. –

+1

@ ChristophBühler perché hai bisogno della versione png? svg si scala abbastanza bene ;-) (anche su tela) – Kaiido

+0

@Kaiido Gli SVG sono abbastanza grandi (20mb) e le immagini devono apparire rapidamente. Questo è il motivo per cui scrivo un buffer di tela. –