Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Graphik in Graustufen auf Canvas? (https://www.delphipraxis.net/174184-graphik-graustufen-auf-canvas.html)

uligerhardt 8. Apr 2013 17:05

Graphik in Graustufen auf Canvas?
 
Hallo zusammen!

Ich muss aktuell Graphiken unterschiedlicher Typen (bmp, wmf, jpg) in Graustufen auf einen TCanvas bringen. Dabei würde ich es gerne vermeiden, die Graphiken erst in ein Bitmap zu wandeln, um Treppenstufen etc. zu vermeiden. Habt ihr da Vorschläge?

Bummi 8. Apr 2013 17:38

AW: Graphik in Graustufen auf Canvas?
 
mmmhhhhh...bei den Pixelformaten sollten bei 1:1 Ausgabe IMHO keine neuen Treppeneffekte entstehen und bei den Vektorformaten lassen sie sich ohnehin nicht vermeiden ... (allenfalls per GDI+ besser interpolieren).
Aber vielleicht habe ich die Anforderung auch falsch verstanden.

uligerhardt 8. Apr 2013 18:10

AW: Graphik in Graustufen auf Canvas?
 
Zitat:

Zitat von Bummi (Beitrag 1210644)
mmmhhhhh...bei den Pixelformaten sollten bei 1:1 Ausgabe IMHO keine neuen Treppeneffekte entstehen und bei den Vektorformaten lassen sie sich ohnehin nicht vermeiden ... (allenfalls per GDI+ besser interpolieren).

Sorry, war unklar ausgedrückt. Vektorgraphik auf Pixelmedium gibt Treppen - die meine ich nicht.

Wenn ich zum Beispiel ein seitenfüllendes WMF auf einen Drucker mit hoher Auflösung ausgeben will und dabei ein temporäres Bitmap in "Zielauflösung" nutze, wird das ja ein monströses Ding. Wenn ich hingegen ein gröbere Auflösung nehme, um den Speicher zu schonen, kommen eben zusätzliche Artefakte hinzu - und die würde ich gerne umgehen. Mal abgesehen davon, dass mein Delphicode die ganzen Schritte von Originalgraphik zu buntem Bitmap zu Graustufenbitmap zu Canvas vermutlich nicht so effizient hinkriegt wie ein GDI-Befehl.

Bjoerk 8. Apr 2013 18:37

AW: Graphik in Graustufen auf Canvas?
 
Ich würde die MetafIle einfach so wie sie ist per Printer.Canvas.StretchDraw abschicken und den Drucker auf Graustufen stellen (Treibereinstellungen).

uligerhardt 8. Apr 2013 18:46

AW: Graphik in Graustufen auf Canvas?
 
Zitat:

Zitat von Bjoerk (Beitrag 1210661)
Ich würde die MetafIle einfach so wie sie ist per Printer.Canvas.StretchDraw abschicken und den Drucker auf Graustufen stellen (Treibereinstellungen).

Da habe ich auch schon dran gedacht, aber da gibt's auch Probleme. Zum einen soll möglicherweise nicht der ganze Druck SW sein, sondern eben nur die betreffenden Graphiken - das muss ich noch mal klären. Und zum anderen wäre es schön, wenn das ganze auch am Bildschirm funktioniert, z.B. für die Vorschau.

Bummi 8. Apr 2013 18:50

AW: Graphik in Graustufen auf Canvas?
 
Für die Vorschau würde eine geringere Auflösung ja genügen und zum Mischen zumindest auf einer Seite gibt es eh Einschränkungen
Zitat:

The system disables the ResetDC function between calls to the StartPage and EndPage functions. This means that you cannot change the device mode except at page boundaries. After calling EndPage, you can call ResetDC to change the device mode, if necessary. Note that a call to ResetDC resets all device context attributes back to default values.
MSDN

Ich fürchte Du wirst um formatfüllende Bitmaps bei den Anforderungen nicht herumkommen.

uligerhardt 8. Apr 2013 19:49

AW: Graphik in Graustufen auf Canvas?
 
Zitat:

Zitat von Bummi (Beitrag 1210665)
Ich fürchte Du wirst um formatfüllende Bitmaps bei den Anforderungen nicht herumkommen.

Ich werd's mal probieren. Vielleicht haut's ja hin. :mrgreen:
Danke für alle Antworten bisher!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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