Entwickler-Ecke
Multimedia / Grafik - Bitmap von unten nach oben ungleiche Opacity
thomas2009 - Do 28.04.11 19:02
Titel: Bitmap von unten nach oben ungleiche Opacity
Hallo,
ich möchte bei Transparenz den Effekt wie von Farbverlauf so zu sagen bekommen
ich möchte die Bitmap oben mehr Transparenz haben als unten
mein Code macht die Bitmap transparent aber gleichmässig
Meine Frage wie kann man eine Maske oder eine schleife erstellen so dass die Bitmap ungleich transparent wird ?
Ich lege meine Demo komplett in Anhang, damit Ihr mich gut verstehen, was ich meine
himitsu - Fr 29.04.11 13:49
Damit hier keiner über fehlende Antworten rumheulen kann:
Bei ScanLine sollte man aufpassen welches Pixel-Format in dem Bitmap vorliegt, denn die Art des Zugriffs ist von dem internen format der Daten abhängig.
- du prüfst nirgends das Format (siehe TBitmap.Pixelformat in der OH)
n ist bei dir quasi sowas wie die Transparenzwert/-faktor
und wenn sich nun die transparenz ändern soll, was mußt du da Ändern?
Bei horizontalem Verlauf muß n also von der horizontalen Positionsvariable innerhalb der Berechnung beeinflußt werden.
Garf - Mo 02.05.11 19:05
thomas2009 hat folgendes geschrieben : |
ich möchte die Bitmap oben mehr Transparenz haben als unten
mein Code macht die Bitmap transparent aber gleichmässig |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| for h := 0 to bmp1.Height - 1 do begin l1 := bmp1.ScanLine[h]; l2 := bmp2.ScanLine[h]; l3 := Image1.Picture.Bitmap.ScanLine[h]; for w := 0 to bmp1.Width - 1 do begin l3[w].rgbtRed := trunc(l1[w].rgbtRed / 100 * (100 - n) + l2[w].rgbtRed / 100 * n); l3[w].rgbtGreen := trunc(l1[w].rgbtGreen / 100 * (100 - n) + l2[w].rgbtGreen / 100 * n); l3[w].rgbtBlue := trunc(l1[w].rgbtBlue / 100 * (100 - n) + l2[w].rgbtBlue / 100 * n); end; end; |
Gleichmässig, weil n immer gleich ist.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!