ich habe in meinem Projekt ein TBitmap, was ich Prozentual abdunkeln möchte.
Dieses Bitmap hat jedoch transparente (nicht halbtransparent) Pixel, die nach dem Abdunkeln ihre Transparenz verloren haben.
Mein Code sieht zurzeit so aus:
Code: Alles auswählen
t := Result.TransparentColor;
w := Result.Width-1;
h := Result.Height-1;
For x := 0 To w Do
For y := 0 To h Do
Begin
c := Result.Canvas.Pixels[x, y];
If (c = t) And Result.Masked Then //<sollte eigentlich das Problem beheben indem es durchsichtige Pixel überspringt, tut es aber nicht...
Continue;
RedGreenBlue(c, r, g, b);
r := round(r / 100 * Brightness); //<- r * Brightness%
g := round(g / 100 * Brightness);
b := round(b / 100 * Brightness);
Result.Canvas.Pixels[x, y] := RGBToColor(r, g, b);
End;
(wenn sich das Problem bis morgen nicht aufgelöst hat werde ich ein Minimabeispiel dazu zusammenstellen, heute ist es zu spät dafür.
Gute Nacht)
MFG
Komoluna