Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.010 Beiträge
 
Delphi 2009 Professional
 
#4

AW: RedeemerSVG.TSVGImage - Kleine SVG-Unit für Delphi mit GDI

  Alt 24. Aug 2017, 23:23
Hallo Redeemer,

schön das sich mal jemand dieses Themas annimmt.
Ich finde SVG ist ein total unterschätztes Format, und die bisherigen Lösungen die ich gesehen habe sind viel zu fett.
Deine kleine Library, mit den Basic-Funktionen und wenn möglich Support für Layer, wäre genau das was ich suche.
Was ist mit Layer gemeint?

Ist das jetzt bei dir der Plan als Freeware, OpenSource, o.ä. anzubieten ?
Keine Ahnung. Dieser Post war nur die Frage, ob überhaupt Interesse an einer ausdrücklich kleinen SVG-Bibliothek besteht.

Ich hätte mal folgende Frage, weil ich sehe das du Referenzen zu Windows/GDI drinhast.
Wärest du daran interessiert die Library für VCL und FMX fit zu machen, oder ist das schon dein Plan ?
Ich verstehe aber das du mit D2009 unterwegs bist, das könnte schwierig werden
Ich ahbe auch XE2 hier rumliegen, nutze ich nur recht selten. Was meinst du mit VCL? Das Teil registriert sich als VCL-Bildklasse.
Da FMX ja plattformunabhängig ist, frage ich mich auch, inwieweit das mit GDI machbar sein soll.

Ansonsten muss ich leider berichten das ich die Beispielbilder mit deiner Demo nicht
laden kann.
Vermutlich waren das die Fehlerbilder für uns zum Testen, richtig ?
In den Code habe ich noch nicht tiefer geschaut, ich denke das DemoProgramm dafür fehlt, deshalb kann ich auch nicht debuggen.
Einfachere SVG kann ich aber mit dem Demo anzeigen lassen, das ist schonmal super.

Rollo
Die Niedersachsenkarte geht, es dauert nur etwas (20 Sekunden auf meinem Laptop). Bei 1 MB Quelltext, der verarbeitet werden muss...
Das Bild der Landshut funktioniert wie erwähnt nur, wenn man die Höhenangabe (height) aus dem SVG-Tag löscht. Ich habe kurz vor Release Support für die wissenschaftliche e-Schreibweise von Zahlen eingebaut und übersehen, dass ich den Exponenten nur auf Kommazahlen, nicht jedoch auf Ganzzahlen (wie hier 1e3) anwende (letzte Zeile von RedeemerFloat, ergänze "* Exponent").

Das ist interessant. Wegen der hochauflösenden Monitore spiele ich mit dem Gedanken, die Png's für Toolbar und co. durch SVG's zu ersetzen. Werde ich mir ansehen...
Man müsste echt mal evaluieren, wie schlimm das Fehlen des ArcTo-Befehls von path ist. Ich glaube, ich habe das unterschätzt. Gut dokumentiert wird es, nur widerspricht diese Demo meiner Meinung nach der Formel.

Aber spontan ist mir das ins Auge gefallen:

[*]Andere Codepages als UTF-8. UTF-8 ist der Standard, ärgerlich ist das nur, weil TStringList.LoadFromStream() mit TEncoding.UTF8 im Fall von ungültigen UTF-8-Codes überhaupt nichts tut.
Versuch das:
Delphi-Quellcode:
type
  TCustomUTF8Encoding = class(TUTF8Encoding)
  public
    constructor Create; override;

  end;
...
{ TCustomUTF8Encoding }

constructor TCustomUTF8Encoding.Create;
begin
  inherited Create(CP_UTF8, 0, 0); // Embas UTF8 setzt MB_ERR_INVALID_CHARS und führt zu dem Problem
  FIsSingleByte := False;
end;
Hier die Erklärung für die Flags. Mehr kann ich nicht schreiben, sonst ärgere ich mich schon wieder maßlos über die RTL- und VCL-Klassenstrukturen...
Danke, werde ich mir mal ansehen.

/Edit: Die Grenze zwischen Äthiopien und Eritrea fehlt in Firefox und im Wikimedia-Rasterisierer, worauf auch immer der basiert. Umso lustiger, dass sie in einer früheren Version meiner Engine da war, wonach ich kaum noch was geändert habe...
Miniaturansicht angehängter Grafiken
entfuehrung-der-landshut-alt.png  
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (24. Aug 2017 um 23:44 Uhr)
  Mit Zitat antworten Zitat