Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Wie speichert TCanvas Grafikdaten intern? (https://www.delphipraxis.net/154601-wie-speichert-tcanvas-grafikdaten-intern.html)

HappyJoe 17. Sep 2010 10:24

Wie speichert TCanvas Grafikdaten intern?
 
Hallo zusammen,

weiss jemand, ob TCanvas die Grafikdaten intern irgendwo abspeichert? Oder anders: Kann ich aus einem Canvas ermitteln, dass es aus beispielsweise einer Linie (von/nach) und einem Text (ABC) besteht?

xZise 17. Sep 2010 10:45

AW: Wie speichert TCanvas Grafikdaten intern?
 
Nicht ohne Mustererkennung. Zumindest meine ich, dass TCanvas nicht speichert was damit passiert ist, sondern nur das Bild lädt/verwaltet.

MfG
Fabian

shmia 17. Sep 2010 11:16

AW: Wie speichert TCanvas Grafikdaten intern?
 
Hinter TCanvas steckt ein GDI Handle von Windows.
Das Handle verweist wiederum auf ein Bitmap, Fenster, Metafile, ...

Mit der Klasse TMetafile kann man die Zeichenbefehle, die über den Canvas reinkommen
aufzeichen, abspeichern und später wieder abspielen (=erneut anzeigen).
Würde man die Datei *.EMF analysieren, dann könnte man jeden Befehl (MoveTo, LineTo,...)
samt Parameter erkennen.
(ist aber kompliziert; Doku hat über 300 Seiten)

HappyJoe 17. Sep 2010 17:21

AW: Wie speichert TCanvas Grafikdaten intern?
 
Danke Andreas,

es ist zwar kompliziert, aber vielleicht werde ich es doch mal versuchen.

Ziel ist es, ein pfd-file zu erstellen. Die Syntax für PDFs habe ich, aber dann muss man jeden Ausdruck doppelt (für Printer.Canvas und PDF) programmieren. Wenn ich jedoch das Canvas/Metafile als Grundlage nehme und daraus die pdf-Befehle ableite, wären Ausdrucke total easy.

Namenloser 17. Sep 2010 17:27

AW: Wie speichert TCanvas Grafikdaten intern?
 
Du kannst dir doch selbst ein TPDFCanvas von TCanvas ableiten, das die Zeichenbefehle in entsprechende PDF-Befehle umsetzt. Dann musst du in der eigentlichen Zeichenroutine nur noch dieses Canvas statt dem normalen Canvas übergeben und die Ausgabe erfolgt als PDF.

Ralf Kaiser 17. Sep 2010 17:30

AW: Wie speichert TCanvas Grafikdaten intern?
 
Zitat:

Zitat von NamenLozer (Beitrag 1050329)
Du kannst dir doch selbst ein TPDFCanvas von TCanvas ableiten, das die Zeichenbefehle in entsprechende PDF-Befehle umsetzt. Dann musst du in der eigentlichen Zeichenroutine nur noch dieses Canvas statt dem normalen Canvas übergeben und die Ausgabe erfolgt als PDF.

Genau so arbeitet die "Synopse PDF Engine" (und das, im übrigen, sehr gut). Das Teil ist Open Source. Einfach mal reinschauen!

HappyJoe 17. Sep 2010 18:26

AW: Wie speichert TCanvas Grafikdaten intern?
 
Ach jaaaa, warum denn einfach wenn's auch kompliziert geht?


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

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