Durchschnitt der
RGB-Werte der umliegenden Pixel
Ja, schon, nur muss die Entfernung zu jedem der umliegenden Pixel berücksichtigt werden.
Wäre der Punkt genau in der Mitte zwischen 4 Pixeln, dann wäre die Farbe:
Delphi-Quellcode:
// x,y :Integer
color := 0.25 * Pixel[x,y] + 0.25 * Pixel[x+1,y] + 0.25 * Pixel[x,y+1] + 0.25 * Pixel[x+1,y+1];
Liegt mein Punkt nicht genau in der Mitte wie im Anfangsbeispiel, tja dann...
@himitsu: deine Formel scheint noch nicht ganz korrekt zu sein, aber sie bringt mich auf diese:
Delphi-Quellcode:
Pixel[Trunc(x), Trunc(y)] * (1 - Frac(x)) * (1 - Frac(y))
+ Pixel[Trunc(x) + 1, Trunc(y)] * (1 - Frac(x)) * Frac(y)
+ Pixel[Trunc(x), Trunc(y) + 1] * Frac(x) * (1 - Frac(y))
+ Pixel[Trunc(x) + 1, Trunc(y) + 1] * Frac(x) * Frac(y)
So sieht es schön symmetrisch aus.
PS: nochmal überlegt, so müsste es sein:
Delphi-Quellcode:
color := Round(
Pixel[Trunc(x), Trunc(y)] * (1 - Frac(x)) * (1 - Frac(y))
+ Pixel[Trunc(x) + 1, Trunc(y)] * Frac(x) * (1 - Frac(y))
+ Pixel[Trunc(x), Trunc(y) + 1] * (1 - Frac(x)) * Frac(y)
+ Pixel[Trunc(x) + 1, Trunc(y) + 1] * Frac(x) * Frac(y));