Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi AlphaBlend (https://www.delphipraxis.net/36553-alphablend.html)

MatthiasW 21. Dez 2004 17:05


AlphaBlend
 
Ich kann mit "BlendBitmap" ein Bitmap mit einer zusätzlichen Farbe überblenden. Gibts eine Funktion die sowas mit ner zweiten Bitmap machen kann? Ich möchte also zwei Bitmaps ineinander Blenden.

Danke für eure Hilfe

gmarts 21. Dez 2004 17:14

Re: AlphaBlend
 
Hallo Matthias,

ich hatte dasselbe Probleme:

hier der Thread: Überblendung zweier Bitmaps

ich habe es leider noch nicht weitergelöst, da mir die Zeit dafür gefehlt hat. Vielleicht kannst du ja damit was anfagen.

MfG GM

dizzy 21. Dez 2004 19:12

Re: AlphaBlend
 
Mit der Graphics32-Lib ein paar wenige Handgriffe.

MatthiasW 21. Dez 2004 19:32

Re: AlphaBlend
 
Danke,
werd mirs ansehen

Greetings Matthias

MatthiasW 21. Dez 2004 19:59

Re: AlphaBlend
 
Hmm, ich glaube das ist zu Rechenintensiv. Das würde mit der Methode von "mcjoin" 24016 Schleifendurchläufe benötigen bei einer Bitmapgröße von 152x158 :gruebel: . Das nur um das Popupfenster meiner ColorComboBox einzublenden, ne kann ich glaub ich nicht machen. Es das eingeblendet ist das dauert.

Was meint ihr? Das dürfte wohl eher hinderlich als nützlich sein?

dizzy 21. Dez 2004 20:07

Re: AlphaBlend
 
Ich weiss zwar nicht was du meinst, aber folgendes geht mit der G32:

Delphi-Quellcode:
var
  bmp1, bmp2: TBitmap32;
.
.
bmp1 := TBitmap32.Create;
bmp1.DrawMode := dmBlend;
bmp2 := TBitmap32.Create;
bmp2.DrawMode := dmBlend;
.
.
bmp1.LoadFromFile('blabla');
bmp2.LoadFromFile('blubb');
bmp2.MasterAlpha := 127;
bmp2.DrawTo(bmp1);
Vorausgesetzt beide Bitmaps sind gleich groß, anderen Falls gibt es von DrawTo eine ganze Reihe von überladenen Versionen, mit denen man gleich strechen usw. kann.
Nach dem obigen ist bmp2 halbtransparent auf bmp1 gezeichnet - also 1:1 gemischt. Das fertige Bild ist in bmp1.

Gruss,
Fabian


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