Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi (TCanvas und Scanline) oder (TBitmap eine Canvas zuweisen) (https://www.delphipraxis.net/30548-tcanvas-und-scanline-oder-tbitmap-eine-canvas-zuweisen.html)

SirThornberry 26. Sep 2004 13:34


(TCanvas und Scanline) oder (TBitmap eine Canvas zuweisen)
 
Hallo,

ich stehe vor folgendem Problem. Ich habe bisher immer eine Function zur Bildmanipulation genutzt die als übergabeparameter "TCanvas" erwartet. Da diese Funktion zu langsam war habe ich heute eine Function gebaut die mit Hilfe von "Scanline" schneller arbeitet und das gleiche macht. Scanline ist aber eine Methode von TBitmap.

Es wäre jetzt ein riesen aufwand in allen Projecten der Aufruf der Funktion zu ändern damit diese schneller arbeiten. Gibt es da eventuell eine Funktion mit der ich einem TBitmap eine Canvas zuordnen kann. Ich weiß das es "Canvas.Draw" gibt, allerdings ist dies ja ein kopieren und nimmt somit wieder rechenleistung in Anspruch.

Somit zur eigentlichen Frage: Gibt es eine Möglichkeit einem TBitmap eine TCanvas zuzuweisen.
Oder gibt es eventuell für TCanvas soetwas wie Scanline? Wenn ja wie kann ich dann das Pixelformat auf 32 Bit eisntellen?

Dax 26. Sep 2004 13:40

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
Einem TBitmap eine Canvas zuweisen ist mit der VCL ganz einfach:
Delphi-Quellcode:
TBitmap.Canvas := NewCanvas;

SirThornberry 26. Sep 2004 13:42

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
Das war auch mein erster Gedanke aber leider ist "Bitmap.Canvas" readonly und kann somit nicht zugewiesen werden

Dax 26. Sep 2004 13:43

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
Dann versuchs doch so:
Delphi-Quellcode:
TBitmap.Canvas.Handle := NewCanvas.Handle;

SirThornberry 26. Sep 2004 13:52

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
@Dax: So gehts aus irgend einem Grund nicht. Auch nicht wenn ich die Größe des Bitmaps setze (egal ob vor oder nach der Canvas.handle-Zuweisung)

Dax 26. Sep 2004 13:52

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
:gruebel: Dann weiss ich auch nichts mehr.

Christian Seehase 26. Sep 2004 14:26

Re: (TCanvas und Scanline) oder (TBitmap eine Canvas zuweise
 
Moin SirThornberry,

Du hast doch eine Delphi Version mit Sourcen.
Schau Dir doch an, wie Scanline dort implementiert ist.


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