Mi piacerebbe generare un file SVG usando C#. Ho già il codice per disegnarli in formato PNG ed EMF (utilizzando la classe standard del framework System.Drawing.Imaging.Metafile e ZedGraph). Cosa consiglieresti di fare per adattare quel codice a SVG? Preferibilmente vorrei trovare una libreria (gratuita o meno) che simuli l'interfaccia System.Drawing.Graphics.Disegno SVG in .NET/C#?
risposta
Scopri il progetto SVG framework in C# and an SVG-GDI+ bridge.
Dalla pagina web di cui sopra ...
Il ponte SvgGdi è un insieme di classi che utilizzano SvgNet per tradurre tra SVG e GDI +. Ciò significa che lo qualsiasi codice che utilizza GDI + per disegnare la grafica può facilmente generare SVG come , semplicemente collegando l'oggetto SvgGraphics . Questo oggetto è esattamente uguale a un normale oggetto .NET ma crea un albero SVG . Vengono implementati anche elementi come i riempimenti tratteggiati e gli ancoraggi di linea.
+1 per il tuo superiore Google-fu. – MusiGenesis
+1, il mio google-fu non ha trovato questo. – liori
Questa sembra essere la pagina principale del progetto: http://www.jbrowse.com/svgnet/. Sembra che la biblioteca non sia stata sviluppata per 6 anni. Probabilmente lo controllerò ancora. – liori
-1, La domanda riguardava l'esportazione di un PNG da SVG. SVGPad è un editor, e non è unparent dall'articolo né l'app né la libreria possono farlo. (se così fosse, avresti dovuto lasciare più di un semplice link) – DevTheo
@DevTheo: potresti leggere più da vicino la domanda e l'articolo collegato. OP non sta provando a convertire un PNG in SVG; OP ha il codice esistente per disegnare le primitive nei formati PNG ed EMF e vuole fare lo stesso nel formato SVG. L'esempio che ho collegato fornisce codice per fare esattamente questo. – MusiGenesis
Ok, scusa .. Ho spinto il mio problema sulla domanda .. scusa .. e non riesco a recuperare il voto ... Ho perso quel punto in qualche modo .. – DevTheo
Come SVG è fondamentalmente un documento XML - è possibile implementare "disegno" da soli. Controlla le specifiche al W3C SVG spec. L'ho fatto una sola volta per generare immagini di firma SVG, sono bastate un paio d'ore e un firefox per testare l'immagine generata.
Naturalmente questo si applica se si sta generando l'immagine da input dell'utente o se non si mente passare del tempo facendo la conversione da un altro formato di immagine vettoriale.
P.S. puoi creare il tuo wrapper per simulare System.Drawing.Graphics, ad es. DrawLine() per aggiungere al buffer interno e così via.
Il problema è il tempo: vorremmo dedicare il minor tempo possibile a questa attività, e il supporto SVG non è davvero vitale per noi. Pertanto, stiamo cercando qualcosa che possa essere utilizzato come sostituzione sul posto per GDI API ... o almeno qualcosa che non necessiti di molto adattamento. Anche il tuo suggerimento è stato già considerato da noi. – liori
Vedo. Quindi il suggerimento di SDX2000 è l'approccio più logico a questo (-. – Audrius
Ok, mi limiterò a fare un anno sabbatico per implementarlo. –
Ho usato questo http://svg.codeplex.com/ e ne sono abbastanza soddisfatto. Ha ancora alcuni bug, quindi dovresti dare un'occhiata alle patch in http://svg.codeplex.com/SourceControl/PatchList.aspx.
Quando scopro degli errori che posso risolvere, li inserisco direttamente lì. Ma ci vuole del tempo per essere valutato dai ragazzi lì. È un'idea migliore dare un'occhiata alle patch e applicarle da soli.
La libreria è abbastanza ragionevole per le esigenze più comuni. per cose davvero fantastiche, deve essere migliorato il pensiero ...
Abbiamo creato un fork pubblico della libreria SVG C# .NET su github.
Si è molto migliorata su quello che trovate su CodePlex, si prega di dare un'occhiata e forchetta come volete:
Edit: Giusto per farvi sapere, a partire da dicembre 2014:
Mentre altri sembrano morti da anni, questo è ancora attivo. Ma potremmo sicuramente usare l'aiuto di altri sviluppatori.
Impressionante! Stavo usando il componente SVG originale, poi ho trovato questo post ed ero su in esecuzione con il componente aggiornato in pochi secondi! Grazie! –
- 1. Disegno SVG su tela Kivy
- 2. Disegno animazione di una freccia in SVG
- 3. Includi file SVG in SVG
- 4. da SVG a Android
- 5. Disegna un grafico di larghezza del tratto di 1 pixel in un disegno svg in A4
- 6. Disegno heatmap con d3
- 7. disegno collaborativo/disegno dal vivo
- 8. Prestazioni in linea SVG vs file SVG
- 9. Orientamento disegno albero
- 10. Disegno multithread in .NET?
- 11. Tabelle disegno in AutoCAD
- 12. Inserimento di un disegno AutoCAD preesistente in un disegno corrente
- 13. Spazio HTML in bianco SVG in linea SVG
- 14. La griglia di disegno con jQuery SVG produce linee 2px invece di 1px
- 15. Seleziona elementi SVG creando un disegno a mano libera intorno a loro
- 16. Best web based SVG WYSIWYG
- 17. SVG in JPG/PNG
- 18. SVG in Fancybox
- 19. Multiple classes in SVG
- 20. Trasformazioni SVG in JavaScript
- 21. Problemi SVG in ie11
- 22. Ridimensionamento SVG in javascript
- 23. Strumento di disegno Enterprise Solution Solution
- 24. Finestra di disegno in JFrame
- 25. Rettangoli di disegno in iOS
- 26. Disegno in Java con Canvas
- 27. Disegno di semicerchi in R
- 28. disegno pixelwise in pyglet (python)
- 29. Disegno di poligoni in Swift
- 30. Disegno animazione
Domanda molto costruttiva !, Perché mai è stato chiuso? –
@gyozokudor: qui vengono chiuse le domande per la richiesta di librerie/strumenti ... Questa è una politica che non era in vigore al momento della presentazione della domanda. Se vuoi discutere di questa politica, vai su meta.stackexchange.com. – liori
Non so di cosa parlarne, mi sembra ovvio che tali domande dovrebbero essere consentite. –