Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi SVG-Komponente oder Unit für Delphi (https://www.delphipraxis.net/202486-svg-komponente-oder-unit-fuer-delphi.html)

Andreas L. 9. Nov 2019 12:23

SVG-Komponente oder Unit für Delphi
 
Hallo,
ich brauch eine Funktion oder Komponente um ein SVG-Bild-Datei in einer bestimmten Größe als PNG zu speichern. Quasi einen Konverter. SVG-Bilder anzuzeigen muss nicht unbedingt möglich sein, wäre aber ganz toll :-) (Das anzeigen müsste via CEF4Delphi möglich sein denke ich)

Kennt jemand so eine SVG-Komponente oder Unit für Delphi? Am besten für Firemonkey und kostenlos...

Falls es da nichts gibt könnte ich evtl. ein anderes Programm via Parameter für die Konvertierung nutzen. Was gibt es da für Werkzeuge?

dummzeuch 9. Nov 2019 14:00

AW: SVG-Komponente oder Unit für Delphi
 
Gerade in der englischen DP gelesen:

https://en.delphipraxis.net/topic/17...#comment-13691

Keine Ahnung was es kostet oder taugt.

dummzeuch 9. Nov 2019 16:22

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von Frühlingsrolle (Beitrag 1451068)
Wieviel es kostet (15 Euro Netto, für 1 Anwender, 1 Jahr Support, samt Source von der Vorgängerversion 2.2), steht hier.
Ein Schnäppchen für:
  • TSVG2Doc
  • TSVG2Graphic
  • TSVG2Control
  • TSVG2Image
  • TSVG2ImageList
  • TSVGLinkedImageList
  • TSVG2LinkedImage
Siehe auch Delphi SVG.

15 Euro ist nur der Update-Preis. Einmalig sind 49 Euro fällig. Aber so wie ich das verstehe, ist der Sourcecode, den man damit bekommt der aktuelle.

Rollo62 9. Nov 2019 20:22

AW: SVG-Komponente oder Unit für Delphi
 
Funktioniert jedenfalls unter ios, Android, macos und win.

Redeemer 9. Nov 2019 20:44

AW: SVG-Komponente oder Unit für Delphi
 
Ich hab 2017 mal eine geschrieben. Super klein und basiert auf TPNGImage, dessen SaveToWhatever-Methoden nicht überschrieben wurden. Speichern erfolgt also immer als PNG.

TurboMagic 10. Nov 2019 10:01

AW: SVG-Komponente oder Unit für Delphi
 
Kann nicht das TPath aus FMX SVG Laden und anzeigen?

Andreas L. 10. Nov 2019 10:30

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von TurboMagic (Beitrag 1451082)
Kann nicht das TPath aus FMX SVG Laden und anzeigen?

In die Data-Property von TPath kann man tatsächlich SVG-XML eintragen. Aber die Komponente behält das XML nicht. Es wird auch nichts angezeigt. Via Code passiert auch nichts:

Delphi-Quellcode:
  Path1.Data.Data := Memo1.Lines.Text;
Was mache ich falsch?

EDIT:

In der Online-Hilfe steht das man über diese Property kein XML laden kann.
Zitat:

The Data property supports only a comma-separated list of instructions defined for the d attribute of the path element in SVG 1.0.

In SVG 1.0, the d attribute contains the moveto, line, curve, arc, and closepath instructions. All instructions are expressed as one character (for example, a moveto is expressed as an M).
http://docwiki.embarcadero.com/Libra...cts.TPath.Data

Aber wie soll es dann gehen? Es gibt keine Load, Set, Open, Read, Get oder sonstwas Methode.

TurboMagic 10. Nov 2019 16:26

AW: SVG-Komponente oder Unit für Delphi
 
Gibt's für dieses Zerpflücken irgendwo ein Beispiel?

Fritzew 10. Nov 2019 18:57

AW: SVG-Komponente oder Unit für Delphi
 
Ich habe es selber nicht benutzt aber das könnte auch etwas sein:
https://github.com/ekot1/DelphiSVG

Redeemer 10. Nov 2019 20:32

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von TurboMagic (Beitrag 1451111)
Gibt's für dieses Zerpflücken irgendwo ein Beispiel?

Also einfach nur wie man TXMLDocument benutzt?

QuickAndDirty 13. Mär 2023 11:29

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von Andreas L. (Beitrag 1451084)
Zitat:

Zitat von TurboMagic (Beitrag 1451082)
Kann nicht das TPath aus FMX SVG Laden und anzeigen?

In die Data-Property von TPath kann man tatsächlich SVG-XML eintragen. Aber die Komponente behält das XML nicht. Es wird auch nichts angezeigt. Via Code passiert auch nichts:

Delphi-Quellcode:
  Path1.Data.Data := Memo1.Lines.Text;
Was mache ich falsch?

Wenn du TPath.PathData im Objektinspektor öffnest kannst du SVG pathdata dort einfügen.
z.b.
Code:
M24,40
C23,40      23,40     22.3,39.3
C21.6,38.6  21.6,38.6 21.6,37.6
C21.6,36.6  21.6,36.6 22.3,35.9
C23,35.2    23,35.2   24,35.2
C25,35.2    25,35.2   25.7,35.9
C26.4,36.6  26.4,36.6 26.4,37.6
C26.4,38.6  26.4,38.6 25.7,39.3
C25,40      25,40     24,40Z
M24,26.4
C23,26.4    23,26.4   22.3,25.7
C21.6,25    21.6,25   21.6,24
C21.6,23    21.6,23   22.3,22.3
C23,21.6    23,21.6   24,21.6
C25,21.6    25,21.6   25.7,22.3
C26.4,23    26.4,23   26.4,24
C26.4,25    26.4,25   25.7,25.7
C25,26.4    25,26.4   24,26.4Z
M24,12.8
C23,12.8    23,12.8   22.3,12.1
C21.6,11.4  21.6,11.4 21.6,10.4
C21.6,9.4   21.6,9.4  22.3,8.7
C23,8       23,8      24,8
C25,8       25,8      25.7,8.7
C26.4,9.4   26.4,9.4  26.4,10.4
C26.4,11.4  26.4,11.4 25.7,12.1
C25,12.8    25,12.8   24,12.8Z
Das ist das more icon(=drei horizontale punkte)
Musst beim TPath control noch Stroke.Color black stellen und Fill.Color auf black stellen und TPath.Wrapmode auf "Fit"
Dann sieht man was man da hat.
Ich habe diese Koordinaten aus der https://fonts.google.com/icons
Datenbank...
leider , stehen die bezier kurven dort als Quadratische bezier Kurven drin (Kommando Q) TPath unterstützt aber nur Cubische bezier kurven....
also muss man Q durch C ersetztem und den ersten parameter doppelt hinschreiben
Beispiel:
Q25,12.8 24,12.8
C25,12.8 25,12.8 24,12.8
sind identisch...aber TPath kann Q nicht...
Was idiotisch ist , denn es gibt an sich nur 6 Malbefehle... oder so in SVG und warum TPath dann genau einen weg lässt ist blöd.
hier sind die Malbefehle von SVG drinn gelistet
https://developer.mozilla.org/en-US/...VG/Attribute/d

Groß = Absolute koordinaten, klein = relative Koordinaten
Code:
    MoveTo: M, m
    LineTo: L, l, H, h, V, v
    Cubic Bézier Curve: C, c, S, s
    Quadratic Bézier Curve: Q, q, T, t
    Elliptical Arc Curve: A, a
    ClosePath: Z, z

cltom 13. Mär 2023 15:36

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von dummzeuch (Beitrag 1451060)
Gerade in der englischen DP gelesen:

https://en.delphipraxis.net/topic/17...#comment-13691

Keine Ahnung was es kostet oder taugt.

da ich auch SVG-Unterstützung gebraucht hab, hatte ich mir die geholt. Nach meinem Eindruck ist die am nächsten an dem dran, was ich gebraucht hab. Der Entwickler war auch sehr hilfreich! Für meine Zwecke bin ich noch nicht ganz am Ziel, aber das liegt wohl daran, dass ich mich mehr in die Komponente einarbeiten müsste.

Hier hat er noch Demos:

https://github.com/BVerhue/delphi-svg-control-examples

Meine Empfehlung hat es, wenn man sich ein wenig reinhängt.

Rollo62 13. Mär 2023 17:42

AW: SVG-Komponente oder Unit für Delphi
 
Ich weiss nicht ob es das ist was Du brauchst, aber dies gibt es auvh noch.
https://github.com/EtheaDev/SVGIconImageList
http://www.angusj.com/delphi/image32/Docs/_Body.htm

Das ist meiner Meinung nach am Besten gepflegt im Moment.

TurboMagic 14. Mär 2023 16:27

AW: SVG-Komponente oder Unit für Delphi
 
Hallo,

es gibt auch noch diese Möglichkeiten, beide per GetIt installierbar:

https://getitnow.embarcadero.com/skia4delphi/
https://getitnow.embarcadero.com/svg...t-vcl-and-fmx/

Grüße
TurboMagic

alaa123456789 16. Jul 2023 07:13

AW: SVG-Komponente oder Unit für Delphi
 
Guten Morgen allerseits, ich bin neues Mitglied in diesem Forum. Gibt es in Lazarus irgendwelche SVG-Kontrollfunktionen?
Danke

KodeZwerg 16. Jul 2023 18:38

AW: SVG-Komponente oder Unit für Delphi
 
Zitat:

Zitat von alaa123456789 (Beitrag 1524628)
Guten Morgen allerseits, ich bin neues Mitglied in diesem Forum. Gibt es in Lazarus irgendwelche SVG-Kontrollfunktionen?
Danke

Willkommen.
BGRABitmap und BGRAControls über OPM installieren, danach stehen Dir mehrere SVG Komponenten in den BGRA Paletten zur Verfügung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz