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