Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Schatten (https://www.delphipraxis.net/100527-schatten.html)

Prototypjack 29. Sep 2007 16:03


Schatten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,

Ich bin hier gerade etwas am verzweifeln.

Ich habe ein Rect auf einem Canvas und möchte darunter einen Schatten legen (ich kann auch den Schatten zuerst legen und dann das Rect darüber zeichnen, das ist kein Problem), aber dabei darf ich keinen Blur Effekt verwenden, da die Bitmap auf der ich Zeichne (bzw die Canvas) schon ein Muster im Hintergrund hat, also: Verwischen ist nicht.

Es muss doch irgendwie möglich sein diesen Schatten hinzubekommen.

Bei dem Beispiel im Anhang sieht man ganz schön was ich machen will, die grünen Linien symbolisieren dabei den komplexen Hintergrund, welche nicht verwischt werden darf.

Ich hoffe jemand kann mir helfen

Danke & Grüße,
Max

Khabarakh 29. Sep 2007 16:11

Re: Schatten
 
Nunja, wie machen es denn Grafikprogramme? Genau, sie fügen den Schatten in einen neuen Layer ein, damit der Blur auch wirklich nur den Schatten betrifft. Zeichne also den Schatten in ein neues Bitmap, blurre es und zeichne das Resultat dann auf das Original-Bitmap.

Prototypjack 29. Sep 2007 16:44

Re: Schatten
 
Moin,

Danke erst einmal für deine Antwort.

Das war tatsächlich einer der ersten Methoden die ich erwog, aber mir kam da mindestens ein Problem in den Kopf:

Wie kopiere ich die Alphatransparenten Ränder (Der Schatten ist ja an einigen Stellen halbdurchlässig)?

Grüße,
Max

Khabarakh 29. Sep 2007 16:54

Re: Schatten
 
Sicherlich nicht mit den eingebauten Delphi-Funktionen, denn die sind immer noch bei GDI festgefroren ;) .
AlphaBlend / www.graphics32.org

Prototypjack 29. Sep 2007 17:08

Re: Schatten
 
Moin,

Ich denke ich verstehe dich irgendwie falsch. Wenn ich ein zweites Bitmap instantiiere, dann ist dessen BG ja weiß, selbst wenn ich darauf rumverwische bleibt ein Teil, der alphatransparente Teil immer weiß anstatt Alphatransparent. Da hilft doch auch keine Copy-Prozedur die Alpha-Werte unterstützt, oder?

Irgendwie stehe ich doch auf dem Schlauch ...

(Achja: Die G32 möchte ich nur ungern verwenden, denn es handelt sich hierbei um eine Komponente und die ich möglichst autark halten will).

Grüße & Danke,
Max

Khabarakh 29. Sep 2007 18:05

Re: Schatten
 
Zitat:

Zitat von Prototypjack
Ich denke ich verstehe dich irgendwie falsch. Wenn ich ein zweites Bitmap instantiiere, dann ist dessen BG ja weiß[...]

Stimmt soweit, aber wer sagt, das wäre nicht änderbar ;) ? Wenn ich dich nicht ganz falsch verstehe, sollte es doch genügen, den Hintergrund mit 0 (transparentes Schwarz) zu füllen.

turboPASCAL 29. Sep 2007 18:24

Re: Schatten
 
Hi, gucke mal da nach: http://www.delphipraxis.net/internal...=774677#774677

reines GDI du musst nur noch ein wenig anpassen.

Prototypjack 29. Sep 2007 18:49

Re: Schatten
 
Moin,

Khabarakh, nein, das Füllen des Hintergrunds mit 0 macht diesen bei mir schlichtweg Schwarz.

Grüße,
Max

Khabarakh 29. Sep 2007 19:48

Re: Schatten
 
Zitat:

Zitat von Prototypjack
Khabarakh, nein, das Füllen des Hintergrunds mit 0 macht diesen bei mir schlichtweg Schwarz.

Ähm ja, beim Anzeigen natürlich. Aber nach einem korrekten AlphaBlend (s. tP) z.B. auf ein rotes Bitmap sollte das Resultat immer noch gleich rot sein.


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