Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mehrere Ebenen (Bitmaps) transparent in die Paintbox laden (https://www.delphipraxis.net/143362-mehrere-ebenen-bitmaps-transparent-die-paintbox-laden.html)

Boom3 14. Nov 2009 09:47


Mehrere Ebenen (Bitmaps) transparent in die Paintbox laden
 
Hallo,

ich habe hier im Forum zwar ein ähnliches Thema gefunden, das auch gelöst wurde.. leider aber ohne befriedigendes Ergebnis :)

Es geht um folgendes:

Ich arbeite z.Z. an einem Zeichenprogramm, das die Arbeit auf mehreren Ebenen erlaubt. Jede Ebene wird als Bitmap in einer Paintbox ausgegeben. Nun, möchte ich die Kanten z.B. von einer Ebene, die einen Kreis darstellt transparent haben.

Ich habe in diesem [1] Beitrag gelesen, dass es nicht ohne weiteres möglich ist eine Bitmap transparents in der Paintbox zu verleihen?

Die Möglichkeit mit TPicture bzw. das pixelweile Zeichnen auf der Paintbox finde ich leider auch nicht gerade optimal.

Deswegen meine Frage.. Gibt es eine schönere und schnellere Lösung dafür?

Gruß
Boom3

[1] http://www.delphipraxis.net/internal...t.php?t=166220

SirThornberry 14. Nov 2009 10:06

Re: Mehrere Ebenen (Bitmaps) transparent in die Paintbox lad
 
Es gibt in der Unit Windows die Funktion Alphablend. Wenn dein Bitmap 32 bit Farbtiefe hat und du somit den Alphakanal nutzt kannst du auch Halbtransparenzen etc. damit erreichen.
Um Pixelweisen zeichnen. Pixelweises zeichnen ist nicht unbedingt schlecht solange du nicht gerade mit dem Property Pixels arbeitest. Bei fertigen Windowsfunktionen wird intern auch jedes Pixel verarbeitet nur eben nicht mit irgendwelchen langsamen Zugriffen sondern mit direktem Zugriff auf den Speicher. Mit Scanline kannst du genau dies auch selbst nachbilden.

Boom3 14. Nov 2009 10:58

Re: Mehrere Ebenen (Bitmaps) transparent in die Paintbox lad
 
Hey,

danke für deine schnelle Antwort.
Wie genau funktioniert das mit dem Alphablend?

Gruß
Boom3

SirThornberry 14. Nov 2009 12:26

Re: Mehrere Ebenen (Bitmaps) transparent in die Paintbox lad
 
Neben R, G und B wird einfach noch ein weiterer Wert verwendet welcher die Transparenz angibt. Je nach verwendeter Funktion wird entweder 0 als 100% Transparenz verwendet oder eben 255. 127 wäre entsprechend halbtransparent.


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