Einsatz von SVG-Grafik

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Benutzeravatar
photor
Beiträge: 445
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Einsatz von SVG-Grafik

Beitrag von photor »

Hallo Forum,
ich bin nicht sicher, ob ich hier richtig bin, weil es mir nicht nur um eine SVG-Komponente sondern auch um den Sinn des Einsatzes geht.

Die Situation: ich habe immer wieder alte Software-Tools (geschrieben in Delphi) für diverse Berechnungen im FE-Umfeld, die modernisiert werden müssen. Zumindest sollten sie im internationale Umfeld eingesetzt werden --> Übersetzung ins Englische.

Da es bei diesen Tools auch immer darauf ankommt, welche Parameter wofür und wie einzugeben sind, werden in der Hilfe (wenn es sie gibt) Skizzen und Bilder mit Beschriftung gezeigt. Die sind leider oft in irgendwelchen diskreten Formaten vorhanden. Also bleibt oft nur - neu machen (weil Pixel-Schrift rauslöschen und neuen Text einsetzen ist kompliziert).

Also erstelle ich diese Skizzen/Bilder (z.B. mit Inkscape), so dass ich wenigstens eine Vektorgrafik als Master habe, von dem ich dann Pixelgrafiken ableiten kann. Das SVG UND das Pixelbild käme mit in's GIT- oder SVN-Repo.

Jetzt stelle ich mir die Frage, ob ich die SVGs nicht direkt in einem Hilfe-Dialog anzeigen könnte. Zum Einen wären die skalierbar und ich könnte mir das Pixelbild sparen. Wichtiger wäre mir, dass das Format ein nachträgliches Anpassen gestatten würde (Text: Sprache, aber auch Ergänzungen, wenn Fragen auftauchen).

Ist das richtig gedacht, oder kaufe ich mir irgendwo einen Nachteil ein, den ich nicht bedacht habe?

Die andere Frage: gibt es eine Komponente, die SVG (oder ein anderes Vektorformat) direkt darstellen kann? Oder muss ich zum Anzeigen den Umweg über ein TImage mit Bitmap gehen (dann wäre eine Skalierung natürlich nicht so ohne weiteres möglich)?

Hinweise sind willkommen.

Ciao,
Photor

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: Einsatz von SVG-Grafik

Beitrag von wp_xyz »

Je nachdem wie einfach das SVG ist, reicht evtl der SVG-Reader von fpVectorial (ist standardmäßig vorhanden), im Package-Ordner components/fpvectorial gibt es auch ein Demo. Aber so richtig zufrieden bin ich damit nicht, so dass es mir schon fast leid tut, auf diesem Weg Werbung dafür zu machen.

Im BGRABitmap-Package scheint es dagegen recht gute SVG-Unterstützung zu geben, und ich meine, das gibt es irgendwo auch eine SVGImageList, die für Toolbar/Menüs SVG-Icons bereitstellt (anstatt Bitmaps). Hab' das alles nicht ausprobiert, aber zumindest hast du damit eine Richtung, in der du weiterschauen kannst.

Benutzeravatar
photor
Beiträge: 445
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Einsatz von SVG-Grafik

Beitrag von photor »

Hallo wp_xyz,

Danke für die Tipps/Hinweise. Fpvectorial schaue ich mir mal an. Beispiel hilft da bestimmt (warum komme ich immer nicht selbst auf die Idee, erstmal da zu suchen? Dafür werden die schließlich mitgeliefert).

Auf SVGImageList war ich schon gestoßen, hatte mir aber schon gedacht, dass das eher dafür gedacht ist, Icons bereitzustellen. Andererseits, wenn die SVGs, die darin gespeichert werden, groß genug sein können, um meine Skizzen und Hilfen aufnehmen zu können, dann soll‘s so sein. Werde ich mir ansehen.

Werden die Vektor-Grafiken eigentlich auch in die Resource-Datei mit aufgenommen (ist aber eh noch Neuland für mich)?

Ciao,
Photor

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: Einsatz von SVG-Grafik

Beitrag von wp_xyz »

Hab im englischen Forum Code fürs Laden von SVG über BGRABitmap in ein Image gefunden und in das beigefügte Projekt eingebaut, bei dem man drei SVG-Bilder aus den Ressourcen laden kann.

Das SvgViewer Demo-Projekt im FPVectorial-Ordner kann ebenfalls den Cowboy und den Tiger laden, allerdings deutlich langsamer, und den Schmetterling aber nur ohne Farben.

Um die Frage nach den Ressource-Dateien zu beantworten: Man kann alles als Ressource-Datei ins Projekt einbinden. Einfach in den Projekt-Optionen unter dem Punkt "Ressourcen" die Datei mit "Hinzufügen" auswählen. Der Dateiname ohne Endung wird zum Namen der Ressource, unter dem man diese dann später zur Anzeige in einen TResourceStream laden kann. Der ebenfalls benötigte Typ der Ressource wird in dem "Ressourcen"-Bildschirm vergeben, in der Regel RT_RCDATA (dieser Bezeichner benötigt die Unit LCLType).
Dateianhänge
bgra_svg_resource.zip
(149.55 KiB) 72-mal heruntergeladen

Benutzeravatar
photor
Beiträge: 445
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: Einsatz von SVG-Grafik

Beitrag von photor »

Hallo wp_yxz,

"Danke" für das Beispiel-Projekt. Ich habe es ausprobiert und es funktioniert. Dazu musste ich allerdings zuerst fehlende Packages installieren. Dabei dann mal direkt den Online Package Manager (OPM) kennen gelernt - den hatte ich bisher nicht installiert, weil ich bisher versucht habe, mit den standardmäßig installierten Paketen auszukommen.

Mit fpvectorial werde ich mich aber auch noch beschäftigen.

Ciao,
Photor

Antworten