Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#13

Re: Verlustfreies Zoomen von Bildern (Interpolieren)

  Alt 19. Okt 2003, 11:48
@Gandalfus
StrechDraw ist zwar einfach zu nutzen und vergrössert auch.
Glättet aber nicht, sonderen zeichnet nur die Pixel mehrfach.

Und wenn die Vergrösserung unglücklich gewählt ist (z.B. 150%), sieht es echt bescheuert aus.


Add:
Delphi-Quellcode:
QI = QuellImage
ZI = ZielImage
Variablen = Integerr
...I[X, Y] = entspricht einem Farbwert des Pixels (z.B. Rot)

For X = 0 to ZI.Width - 1 do
  For Y = 0 to ZI.Height - 1 do Begin
    X2 = Trunc(QI.Width * (X / ZI.Width));
    Y2 = Trunc(QI.Height * (Y / ZI.Height));
    PX = Frac(QI.Width * (X / ZI.Width));
    PY = Frac(QI.Height * (Y / ZI.Height)));
    ZI[X, Y] = QI[X2, Y2] * (1 - PX) * (1 - PY) +
               QI[X2 + 1, Y2] * PX * (1 - PY) +
               QI[X2, Y2 + 1] * (1 - PX) * PY +
               QI[X2 + 1, Y2 + 1] * PX * PY;
  End;
Ich hoffe, du verstehst was ich meine. Hab es möglichts einfach gehalten.
Soll nur das Prinzip für eine Vergrösserung mit linearen Übergängen darstellen.
Angehängte Dateien
Dateityp: exe project1_807.exe (375,5 KB, 49x aufgerufen)
$2B or not $2B
  Mit Zitat antworten Zitat