Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Einige Fragen zu graphics32

  Alt 7. Sep 2005, 14:57
Mahlzeit!

Zitat von nano:
Allerdings übermalt die Prozedure Clear(); alle anderen ebenen mit Schwarz, obwohl ich DrawMode auf dmBlend gesetzt habe.

Wie kann man die Ebene säubern ohne sie mit Farbe zu füllen? Damit man die darunterliegenden Ebenen nicht übermalt
TBitmap32.Clear gibt es in 2 überladenen Versionen. Eine davon bietet dir die Möglichkeit die Füllfarbe zu definieren:
  MyBmp.Clear(Color32(r, g, b, ALPHA)); Die Angabe von "Alpha" ist optional, und Standardwert ist "voll deckend". Das ist dein Kandidat


Zitat von nano:
2.) Es soll nur ein bestimter Bereich des Bildes ausgeschnitten werden. Dazu wird eine Ebene erstellt, die das Auswahlmuster enthält (Bsp: Kreis). Nun soll der vom Kreis überdeckter Bereich aus der darunterliegender Ebene in ein anderes Bitmap kopiert werden. Wie ist das möglich?
Zunächst mal einfach via TBitmap32.Draw{To}. Dabei gibt es massig überladene Versionen die verschiedene Angaben zu Positionierung und Größe ermöglichen. Das Ausmaskieren des Kreises wirst du von Hand machen müssen. Ein Ansatz: Erstelle ein s/w-Bitmap in der Größe deines Kreises und zeichne ihn (gefüllt) rein. Dann nimmst du deinen o.g. kopiertes Bitmap, und belegst es mit "IntensityToAlpha()" (-> Hilfe zur G32) mit eben diesem s/w-Bild als Alphamaske. Anschließend dieses Bild, dass die maskierte Kopie enthält, auf dein Zielbitmap zeichnen (auf dmBlend achten!).


Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat