Das Thema ist zwar alt, aber ich habe eine Frage zu diesem Bereich:
Delphi-Quellcode:
****************************************************************
* Fastblur routine (c)2005 Roy Magne Klever
* If you improve it send me a copy at [email]roy_m_klever@hotmail.com[/email]
****************************************************************
procedure rkFastBlur(src, dest: TBitmap; radius, rep: integer);
...
i := -radius;
while i <= w + radius do
begin
tx := i;
if tx < 0 then
tx := 0
else if tx >= w then
tx := w;
with pRGB24(ny + tx * 3)^ do
begin
saR[i + radius] := r + saR[i + radius - 1];
saG[i + radius] := g + saG[i + radius - 1];
saB[i + radius] := b + saB[i + radius - 1];
end;
inc(i);
end;
...
Der Startwert von i ist -radius. Dann wäre der erste Wert für
i + radius - 1
-1. Das Array beginnt doch aber mit Element 0. Warum kommt es da nicht zu einem Fehler? Werden dann für das Element -1 irgendwelche zufälligen Werte genommen?