AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi SVG Lade-Problem

Ein Thema von UliBru · begonnen am 26. Jun 2025 · letzter Beitrag vom 27. Jun 2025
Antwort Antwort
UliBru

Registriert seit: 10. Mai 2010
159 Beiträge
 
Delphi 12 Athens
 
#1

Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 13:19
Delphi-Version: 12 Athens
Hi all,
ich hab mal wieder ein Problem mit dem rapid application development. Was ja nicht rapid ist wenn es nicht so tut wie man erwartet.
Ich habe da ein SVG welches unter Inkscape wie im Anhang, Loop1.svg, ausschaut.
Wenn ich das mit dem SVG Text Editor betrachte zeigt sich die Ansicht wie Loop2.svg (also ein Bereich ist grau)
Und wenn ich das Bild mit der TAdvSVGImageCollection verwenden will und dann lade zeigt mir dann der Ladedialog das Bild mit Loop3.svg. Dabei sind dann die Elemente, hier Pfeile, verschoben bzw. verdreht.


Wie bekomme ich nun ein richtiges Bild nach Delphi?

- Uli -
Angehängte Grafiken
Dateityp: jpg Loop1.jpg (12,2 KB, 14x aufgerufen)
Dateityp: jpg Loop2.jpg (5,1 KB, 14x aufgerufen)
Dateityp: jpg Loop3.jpg (13,3 KB, 13x aufgerufen)
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
TomyN
Online

Registriert seit: 8. Nov 2006
Ort: Bayreuth
278 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 13:50
'Meine' Designerin musste ein paar Einstellungen beim Export von SVGs aus Photoshop ausprobieren, bis die Anzeige der ca. 50 Icons in Delphi korrekt funktioniert hat. Ich verwende allerdings TSGVIconImageCollection von Ethea.
Problemmatisch waren wohl, wenn ich mich recht erinnere, vor allem gruppierte Objekte (was ich bei den Pfeilen vermute).
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.464 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 14:05
Das liegt aber nicht am Delphi (RAD/Embarcadero/...), sondern an dieser Fremdkomponent von TMS, wenn die dein SVG nicht richtig versteht/darstellen kann.
In diesem Fall gibt es (vermutlich) Probleme mit der Rotations-Eigenschaft und der Positionierung an den Pfeilen.

Wenn ich mich recht erinnere, dann sollte SKIA (neu im Delphi 12)
auch SVG recht gut behandeln können.

https://docwiki.embarcadero.com/RADS...en/Skia4Delphi
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (26. Jun 2025 um 14:10 Uhr)
  Mit Zitat antworten Zitat
UliBru

Registriert seit: 10. Mai 2010
159 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 14:24
Die Objekte sind nicht gruppiert, auch ein explizites Auswählen aller Objekte und Aufheben der Gruppierung hilft nicht.

Ich schau mir mal SKIA an. Habe ich bisher nicht im Einsatz. Das ändert dann vermutlich wieder einiges
Er wollte so richtig in Delphi einsteigen. Nun steckt er ganz tief drin ...
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.044 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 14:51
Hi all,
ich hab mal wieder ein Problem mit dem rapid application development. Was ja nicht rapid ist wenn es nicht so tut wie man erwartet.
Ich habe da ein SVG welches unter Inkscape wie im Anhang, Loop1.svg, ausschaut.
Wenn ich das mit dem SVG Text Editor betrachte zeigt sich die Ansicht wie Loop2.svg (also ein Bereich ist grau)
Und wenn ich das Bild mit der TAdvSVGImageCollection verwenden will und dann lade zeigt mir dann der Ladedialog das Bild mit Loop3.svg. Dabei sind dann die Elemente, hier Pfeile, verschoben bzw. verdreht.


Wie bekomme ich nun ein richtiges Bild nach Delphi?

- Uli -
Nimm nicht die TAdvSVGImageCollection vom TMS
TMS weiß nicht wie man rapid application development macht.

Mit Skia gehen SVG eingentlich ziemlich gut, aber ich nutze SKIA mit FMX und dann muss man immer seine SKIA.DLL mit liefern....

wenn du nur einfarbige SVGs als icon brauchst kannst du theoretisch auch einfach den SVG Path in den TPath von FMX übergeben...damit das für kreise gut läuft habe ich zum teil die "Q" function substituieren müssen
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (26. Jun 2025 um 14:54 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.221 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 15:16
Es gibt auch SVG von EtheaDev
https://github.com/EtheaDev/SVGIconImageList

Aber ich vermute mal, dass Du TMS nicht nur wegen SVG nutzt.


Zitat:
wenn du nur einfarbige SVGs als icon brauchst kannst du theoretisch auch einfach den SVG Path in den TPath von FMX übergeben...damit das für kreise gut läuft habe ich zum teil die "Q" function substituieren müssen
Ich fürchte ganz so einfach wird es nicht.
TPathData kann zwar einen Pfad rendern, aber SVG ist viel komplexer und besteht meist aus mehreren Layern,
das kann TPath dann schon nicht mehr.
Aber ja, man kann SVGs so anpassen, dass sie in TPath gut gerendert werden können, mache ich auch so.

Geändert von Rollo62 (26. Jun 2025 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
170 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 15:33
Manche SVG-Dateien sind aber auch unnötig komplex. Und sehr wahrscheinlich unterstützt TMS hier irgendein Feature nicht.

Muss es die TAdvSVGImageCollection sein? Wie hier schon erwähnt ist die SVGIconImageList recht gut. Man kann zwischen 3 verschiedenen Bibliotheken zum Darstellen von SVG-Dateien wählen. Image32, Windows Direct2D und SKIA.

Ansonsten, wenn Du die SVG-Datei hier hochladen magst, kann ich mal schauen, was TMS hier nicht gefällt.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.044 Beiträge
 
Delphi 12 Athens
 
#8

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 15:37
Es gibt auch SVG von EtheaDev
https://github.com/EtheaDev/SVGIconImageList

Aber ich vermute mal, dass Du TMS nicht nur wegen SVG nutzt.


Zitat:
wenn du nur einfarbige SVGs als icon brauchst kannst du theoretisch auch einfach den SVG Path in den TPath von FMX übergeben...damit das für kreise gut läuft habe ich zum teil die "Q" function substituieren müssen
Ich fürchte ganz so einfach wird es nicht.
TPathData kann zwar einen Pfad rendern, aber SVG ist viel komplexer und besteht meist aus mehreren Layern,
das kann TPath dann schon nicht mehr.
Aber ja, man kann SVGs so anpassen, dass sie in TPath gut gerendert werden können, mache ich auch so.
Und es gibt im internet einen automatischen shape to path converter!
https://thednp.github.io/svg-path-co...r/convert.html


und weil TPath
Bezier Kurven nicht beherrscht habe ich diesen Konverter gebaut(oder aus zwei orten zusammen geklaut) (anhang)...


Der wird so benutzt
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Path1.Data.Data := SVGPathToPath(Memo1.Text);
end;
Angehängte Dateien
Dateityp: pas uSVGPath.pas (26,7 KB, 1x aufgerufen)
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (26. Jun 2025 um 15:50 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.221 Beiträge
 
Delphi 12 Athens
 
#9

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 15:57
Und es gibt im internet einen automatischen shape to path converter!
https://thednp.github.io/svg-path-co...r/convert.html
Danke sehr, wieder ein neuer Converter.

Der kommt aber anscheinend nicht so gut klar mit komplexeren SVG, wenn ich mal so ein Beispiel reinwerfe

Delphi-Quellcode:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <g stroke="#1c1308" stroke-width="1">
  <path d="M32,29l-11-1c-25-1-20,0-18,20c2,8,0,13,10,13z" fill="#53381a"/>
  <path d="M36,31h-11c-25-1-20,0-18,20c2,8,1,12,12,9z" fill="#8a5b28"/>
  <path d="M32,25c5-10,3-12,18-10c20,5,20,6,35,6c10,1,20,4,10,16l-11,20h-66z" fill="#454f2e"/>
  <path d="M13,53v7l45,18v-7zM32,25c5-10,3-12,15-8c20,6,10,6,31,6c10,1,18,4,10,16l-11,20l-56-9z" fill="#76894c"/>
  <path d="M13,53c-3-10,2-9,10-10c10-1,37,7,20,7c-12,1-12,0-12,10zM31,60c-2-14,13-8,20-10l7,3v18z" fill="#8e996c"/>
  <path d="M57,62c1,20,0,19,18,19c20,0,17,0,19-17c0-17-1-16-18-18c-20-1-19,0-19,16z" fill="#53381a"/>
  <path d="M60,64c1,20,0,19,18,19c20,0,17,0,19-17c0-17-1-16-18-18c-20-1-19,0-19,16z" fill="#8a5b28"/>
  </g>
</svg>
Hiermit bekomme ich schon mehr Info
https://shapeshifter.design/
https://svg2vector.com/
https://yqnn.github.io/svg-path-editor/
https://boxy-svg.com/

Es ist aber immer gut, wenn man zig Online-Tools zum gegeneinander Testen hat.

Geändert von Rollo62 (26. Jun 2025 um 16:10 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.044 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi SVG Lade-Problem

  Alt 26. Jun 2025, 16:21
Und es gibt im internet einen automatischen shape to path converter!
https://thednp.github.io/svg-path-co...r/convert.html
Danke sehr, wieder ein neuer Converter.

Der kommt aber anscheinend nicht so gut klar mit komplexeren SVG, wenn ich mal so ein Beispiel reinwerfe

Delphi-Quellcode:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <g stroke="#1c1308" stroke-width="1">
  <path d="M32,29l-11-1c-25-1-20,0-18,20c2,8,0,13,10,13z" fill="#53381a"/>
  <path d="M36,31h-11c-25-1-20,0-18,20c2,8,1,12,12,9z" fill="#8a5b28"/>
  <path d="M32,25c5-10,3-12,18-10c20,5,20,6,35,6c10,1,20,4,10,16l-11,20h-66z" fill="#454f2e"/>
  <path d="M13,53v7l45,18v-7zM32,25c5-10,3-12,15-8c20,6,10,6,31,6c10,1,18,4,10,16l-11,20l-56-9z" fill="#76894c"/>
  <path d="M13,53c-3-10,2-9,10-10c10-1,37,7,20,7c-12,1-12,0-12,10zM31,60c-2-14,13-8,20-10l7,3v18z" fill="#8e996c"/>
  <path d="M57,62c1,20,0,19,18,19c20,0,17,0,19-17c0-17-1-16-18-18c-20-1-19,0-19,16z" fill="#53381a"/>
  <path d="M60,64c1,20,0,19,18,19c20,0,17,0,19-17c0-17-1-16-18-18c-20-1-19,0-19,16z" fill="#8a5b28"/>
  </g>
</svg>
Hiermit bekomme ich schon mehr Info
https://shapeshifter.design/
https://svg2vector.com/
https://yqnn.github.io/svg-path-editor/
https://boxy-svg.com/

Es ist aber immer gut, wenn man zig Online-Tools zum gegeneinander Testen hat.
Du hast ja schon eine komplette Turnier Aufstellung am start!
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 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