Delphi-Quellcode:
procedure makedarker(Bitmap: TBitmap32;
const dp: Byte = 10);
var
PixelLine: PColor32Entryarray;
x, y: integer;
begin
for y := 0
to Bitmap.height - 1
do
begin
PColor32Array(PixelLine) := Bitmap.ScanLine[y];
for x := 0
to (Bitmap.width) - 1
do
// für die drei Farbkanäle sähe das so aus:
PixelLine[x].R := PixelLine[x].R - round(PixelLine^[x].R /
dp);
PixelLine[x].G := PixelLine[x].G - round(PixelLine^[x].G /
dp);
PixelLine[x].B := PixelLine[x].B - round(PixelLine^[x].B /
dp);
end;
end;
so müsste das eigentlich auch gehn oder? wenn ich als parameter 100 übergebe, merke ich nichts, weil fast nichst subtrahiert wird, wenn ich 2 als
dp übergebe, wird die farbe des bildes verändert, aber es wird grün :O eigentlich sollte es doch dunkler werden aber nicht grüner oder? ist die berechnung nun falsch oder wieso bekommt das bild einen grünstich