Scalable Vector Graphics (SVG) in PureBasic benutzen?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von ccode_new »

NicTheQuick hat geschrieben:
STARGÅTE hat geschrieben:@All:
Ich würde mich einfach mal ransetzen, ein paar Zeilen zu schreiben, mal sehen wie weit ich komme.
Willst du dir das wirklich antun? Wieso das Rad neu erfinden? Nutz doch, was da ist. Cairo zum Beispiel.
Also eine Portierung der SVG - Fähigkeiten von Cairo (am besten schön als Modul-verpackt) fände ich schon sehr toll.

Man benötig vor allem auch folgende Libs (neben Cairo): librsvg, libgobject

Mit einer Aussage von: "Willst du dir das wirklich antun? " ist hier niemanden geholfen.

Eine Nutzung von SDL mit Cairo scheint auch möglich zu sein.
(Diese: "libSDL_svg-1.1.so" Lib sieht auch sehr nett aus.)

SVG
libSDL_svg

(sh ./autogen.sh -> ./configure -> make install ->testen ;) )
----

Ich bleibe erst einmal bei einem externen Konsolenprogramm.

Dabei ist:
"rsvg-convert test.svg -o new_test.png"

ganz nett.

Aber ich bevorzuge jetzt das Konsolentool von "ImageMagic".
(Das funktioniert auch irgend wie besser und bietet noch viel mehr coole Dinge, hat aber auch wesentlich mehr Abhängigkeiten.)

"convert test.svg new_test.png"

Naja mal sehen....
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von freak »

STARGÅTE hat geschrieben:Problem was ich sehe ist, dass die Vector-Lib von PB nicht vollständig ist, und man somit auch "Umgehungen" programmieren muss, wie z.B. der FillingMode: nonzero und evenodd.
Den nonzero (oder auch "winding") mode habe ich für die nächste Version als Flag eingebaut. Der "evenodd" Modus ist der Default in PB.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von STARGÅTE »

Ah danke freak.

Es ist nicht zufällig auch geplant SVGs zu importieren^^?

Aktuell Kämpfe ich noch mit AddPathSegments() weil es so einige "besonderheiten" nicht versteht.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von freak »

Ich würde das gerne machen, da es aber doch einiges an Aufwand ist bin ich mir nicht sicher ob ich das anfangen sollte. Also lieber nicht drauf warten ;)

Leider gibt es dazu keine guten Libs die wir verwenden könnten. Die oben genannte librsvg ist außerhalb von Linux nicht so leicht zu verwenden (wegen GObject und Cairo dependency). Da hat man dann gleich einen ganzen Stapel DLLs am Hals und das passt nicht ganz zu PB. Desshalb müsste es wohl eine Eigenimplementierung sein.

Den Bugreport zu AddPathSegments() habe ich gesehen. Das sollte kein Problem sein das zu beheben.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von STARGÅTE »

Da ich aktuell SVG Grafiken in PB nutzen möchte und Fred/freak den einen Bug in AddPathSegments() gefixed hat,
hab ich mich nun doch mal hingesetzt und ein paar Grundzüge vom SVG-Format für die VectorDrawing-Lib von PB Übersetzt.

Hier gibts den probier-Quellcode mit Demo hinten dran. In den Editor einfach n SVG-Dokument einfügen und gucken ^^
https://www.unionbytes.de/downloads/VectorGraphic.pbi
Aktuell gehen nur wenige Dinge wie Grundformen, Pfade, Painting (Fill & Stroke), Styling (Global & Lokal).

Wenn jemand wünsche hat, was noch mit "erkannt" werden soll, einfach bescheid geben.
Natürlich kann ich auch nur das implimentieren, was mit der VectorDrawing-Lib umsetzbar ist.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von Nino »

STARGÅTE hat geschrieben:Hier gibts den probier-Quellcode mit Demo hinten dran. In den Editor einfach n SVG-Dokument einfügen und gucken ^^
https://www.unionbytes.de/downloads/VectorGraphic.pbi
Aktuell gehen nur wenige Dinge wie Grundformen, Pfade, Painting (Fill & Stroke), Styling (Global & Lokal).
Sehr cool :!: :allright:
Funktioniert hier gut (getestet mit PB 5.71 beta 1 unter Windows 10), vielen Dank!

Kleiner Vorschlag: Ich würde das Modul anders nennen.
"VectorGraphic" ist ein bisschen lang und kann vieles bedeuten.
Warum nicht einfach "SVG"? Das trifft die Sache präziser und ist kürzer.
Oder "SGV" (StarGates Vectorgraphic). :-)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1754
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von Andre »

STARGÅTE hat geschrieben: Hier gibts den probier-Quellcode mit Demo hinten dran. In den Editor einfach n SVG-Dokument einfügen und gucken ^^
https://www.unionbytes.de/downloads/VectorGraphic.pbi
Aktuell gehen nur wenige Dinge wie Grundformen, Pfade, Painting (Fill & Stroke), Styling (Global & Lokal).
Coole Sache, STARGÅTE :allright:

Was evtl. noch machbar und nützlich wäre, sind paar Dinge von den hier aufgeführten Beispielen:
https://www.w3schools.com/graphics/svg_examples.asp

z.B. Gradient, Multiline-Text und (wohl eher nicht so einfach machbar) Moving/Rotating Text :)
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von sharkpeter »

Hallo Stargate,

auf der Suche nach einer Möglichkeit, svg zu laden, bin ich auf deine Beitragsreihe gestoßen.

Ich habe den Code heruntergeladen und die Anzeige des svg, welches im Beispiel heruntergeladen wird funktioniert auch.

Nun gibt es ja auch eine Procedure, mit der man Laden kann. Das Laden an sich macht kein Problem, nur wird
nichts angezeigt und ich stehe mal wieder auf dem Schlauch, wo ich da etwas übersehen haben könnte. Da du
das sicher recht leicht aufklären kannst, würde ich um eine Hilfestellung dazu bitten, vielleicht am einfachsten
mit einem Codebeispiel.

VG aus der Gruft, Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von Benubi »

Ich habe mal gesehen, daß ein SVG Image Plugin (nur lesen) gepostet wurde als die Vektorgrafik Library zu PB hinzu kam (Autor und Link habe ich leider längst vergessen) - vielleicht war das sogar in einem Beispiel Verzeichnis von irgend einer Beta Version.... Keine Ahnung wie vollständig dieses Plugin war, und vermute auch daß es hin und wieder Updates bezüglich der SVG Funktionen alle paar Jahre geben kann. Der oben verlinkte SVG code ist von 2010, daher gehen vermutlich aktuelle SVG's nicht mehr damit und vor einigen Jahren war das dann vermutlich etwas brauchbarer.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Scalable Vector Graphics (SVG) in PureBasic benutzen?

Beitrag von STARGÅTE »

sharkpeter hat geschrieben: 13.02.2023 01:27 Hallo Stargate,

auf der Suche nach einer Möglichkeit, svg zu laden, bin ich auf deine Beitragsreihe gestoßen.

Ich habe den Code heruntergeladen und die Anzeige des svg, welches im Beispiel heruntergeladen wird funktioniert auch.

Nun gibt es ja auch eine Procedure, mit der man Laden kann. Das Laden an sich macht kein Problem, nur wird
nichts angezeigt und ich stehe mal wieder auf dem Schlauch, wo ich da etwas übersehen haben könnte. Da du
das sicher recht leicht aufklären kannst, würde ich um eine Hilfestellung dazu bitten, vielleicht am einfachsten
mit einem Codebeispiel.

VG aus der Gruft, Jens
Oh hab dein Beitrag irgendwie übersehen. Kannst du mir eine Beispiel SVG geben, bei der das laden nicht funktioniert?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten