21 Stimmen

Einfache Anti-Aliasing-Funktion für Delphi 7

Ich brauche eine sehr einfache Funktion zum Zeichnen einer Menge von Linien mit Anti-Aliasing. Es muss dem Delphi-Paradigma folgen: Selbständig und SYSTEMUNABHÄNGIG (kein DLL-Hell), schnell, einfach. Kennt jemand solch eine Bibliothek?

Bisher habe ich versucht:

WuLine
swissdelphicenter.ch/torry/showcode.php?id=1812
Ich glaube nicht, dass der Autor dieses Codes es jemals ausgeführt hat. Es dauert eine Sekunde, um eine einzige Linie zu zeichnen! Offensichtlich dient es nur zu Lehrzwecken :)

Anti-Aliasing-Zeichnung aus TMetaFile
Link: blog.synopse.info/post/2010/04/02/Antialiased-drawing-from-TMetaFile
Ich habe es noch nicht wirklich ausprobiert (ich werde es vielleicht bald tun). Es funktioniert nur mit TMetaFiles. Es lädt nur eine EMF-Datei und zeichnet sie mit Anti-Aliasing-Funktionen. Außerdem ist viel Code auf dieser Website nur demonstrativ/lehrreich.

Image32
Sehr schöne Bibliothek - bisher am vollständigsten. Ich könnte es verwenden, aber es ist überdimensioniert für das, was ich brauche.
Nachteile:
- Der Fußabdruck, den die Anwendung hinzufügt, ist ziemlich groß.
- Wirklich schwer zu bedienen.
- Sie müssen sich selbst in die undurchsichtige Dokumentation vertiefen, selbst für einfache Aufgaben. - Der bereitgestellte Democode ist viel zu komplex.
- Fehlerhaft!
- Keine aktuellen Updates (um die Fehler zu beheben)

Anti-Grain Geometry Bibliothek
Die Bibliothek braucht einen anständigen Installer. Die Autoren der Bibliothek sind Linux/Mac-Benutzer. Die Windows-Implementierung sieht seltsam aus. Über die Bibliothek selbst kann ich nichts weiter sagen.

Funktion basierend auf Xiaolin Wu (von Andreas Rejbrand)
Schau dir nur ein paar Beiträge unten an. Andreas Rejbrand hat eine sehr kompakte Lösung bereitgestellt. Beste Lösung bisher.


Es sieht so aus, als ob ich erklären müsste, warum ich große 3rd-Party-Bibliotheken und VCLs nicht mag:

  • Sie müssen sie installieren
  • Eine große Bibliothek bedeutet viele Fehler, was bedeutet
  • Sie müssen nach Updates suchen (und sie erneut installieren)
  • Wenn Sie Delphi neu installieren, müssen Sie sie noch einmal installieren (ja, ich hasse es, VCLs zu installieren)
  • Für VCLs bedeutet dies, dass Sie einige zusätzliche Symbole in Ihrer bereits überfüllten Palette laden müssen.
  • (manchmal) keinen Support
  • GROßER Fußabdruck, der der Größe Ihrer Anwendung hinzugefügt wird
  • Eine große Bibliothek bedeutet (nicht immer, aber in den meisten Fällen) schwer zu bedienen - schwieriger als notwendig.
  • (für externe DLLs und APIs) wird Ihre Anwendung systemabhängig - wirklich ärgerlich!

1 Stimmen

Das Besondere an unserer SynGdiPlus-Bibliothek ist, dass Sie Ihren Zeichencode einfach mit den herkömmlichen VCL TCanvas-Methoden schreiben können. Zeichnen Sie mit einem TMetaFileCanvas und spielen Sie es dann auf einem Bitmap mit unserer Bibliothek ab. Es ist sehr schnell und funktioniert für viel mehr als nur Linienzeichnungen. Und der Platzbedarf in Ihrer Anwendungsdatei ist vernachlässigbar. Gerne können Sie Kommentare oder Fragen zu unserer Bibliothek auf unserer Website posten. Und es ist nicht nur zur Demonstration/Ausbildung gedacht: Es wird in echten Anwendungen eingesetzt, für eine großartige Darstellung, mit viel VCL TCanvas-Code (andere Programmierer dachten, es sei Dot-Net-Zeichnen :)

3 Stimmen

GDI+ erfüllt meine Anforderungen (D7).

0 Stimmen

SynGdiPlus wird mit D7 funktionieren. Besuchen Sie unser Forum: synopse.info/forum/viewtopic.php?pid=498#p498

3voto

bman Punkte 4258

Hier sind die Produkte, von denen ich weiß:

  1. DtpDocument Sehr guter Vektor-Editor. Viele Funktionen. Anti-Aliasing wird sehr gut unterstützt. Kommerzielle Lösung
  2. ImageEn Es ist schnell genug für mich. Kommerzielle Lösung
  3. Cairo Graphics Es ist sehr schnell und wird von Mozilla in Firefox zur Darstellung verwendet. Sie können Cairo leicht in Delphi verwenden, indem Sie dieses Tutorial folgen. Ich empfehle Ihnen dringend, es auszuprobieren.

1voto

lainz Punkte 13

Es gibt BGRABitmap für Delphi https://github.com/bgrabitmap/BGRABitmapDelphi

BGRABitmap war ursprünglich eine Lazarus FPC-Bibliothek, funktioniert jetzt aber auch mit Delphi VCL und ist vollständig ausgestattet mit Kantenglättung und Transparenz.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X