@Cyberstorm: du kannst deinen code noch etwas vereinfachen und auf geschwindigkeit optimieren, ich hab das mal für dich gemacht
Delphi-Quellcode:
procedure Multi(src: TBitmap; r, g, b, Intensiv: Byte);
var
P: PRGBTriple;
xy: integer;
begin
if src.PixelFormat<>pf24bit then
src.PixelFormat:=pf24bit;
P:=src.scanline[src.Height-1];
for xy:=0 to src.Height*src.Width-1 do begin
P.rgbtBlue := (P.rgbtBlue shl 8 * not Intensiv + P.rgbtBlue * Succ(b) * Intensiv) shr 16;
P.rgbtGreen := (P.rgbtGreen shl 8 * not Intensiv + P.rgbtGreen * Succ(g) * Intensiv) shr 16;
P.rgbtRed := (P.rgbtRed shl 8 * not Intensiv + P.rgbtRed * Succ(r) * Intensiv) shr 16;
Inc(P);
end;
end;
mfg