Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Farbeinterpolation von Zwischenpixel

  Alt 25. Okt 2010, 19:08
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));
Andreas

Geändert von shmia (25. Okt 2010 um 19:27 Uhr)
  Mit Zitat antworten Zitat