Forum: Multimedia
Delphi
by himitsu,
20. Okt 2003
:nerd: Scharf bekommt man die gezoomten Bilder nicht beim interpolieren.
Die einzige Möglichkeit in deinem Bild scharfe Kanten zu bekommen ist den linken Button zu benutzen.
Mit X2/Y2 lege ich fest, welche 4 Pixel für die Berechnung des neuen Pixels verwendet werden.
Und mit der "Wertigkeit" wird bestimmt welchen Einfluss diese Pixel auf den neuen Farbwert haben.
D.h. je näher ein Pixel...
Forum: Multimedia
Delphi
by himitsu,
20. Okt 2003
> Byte/Extended inkompatibl = nicht gerundet
> Function/Variable selbe Namen
...
Hab's überarbeitet und als Beispiel angehängt.
:!: Achtung: Eine Optimierung folgender Art ist nicht möglich. Fehler bei Positionsberechnung.
(stimmt zwar rechnerisch, funktioniert aber nicht - es entstehen unschöne Linien im Bild)
X2 := Trunc(QI.Width * (X / ZI_Width));
=>
Forum: Multimedia
Delphi
by himitsu,
20. Okt 2003
BitMap zusammen mit der neuen Größe übergeben:
z.B.: Zoom(Image1.Picture.Bitmap, 800, 600);
(QI = QuellImage, ZI = ZielImage)
Procedure Zoom(Var QI: TBitMap; ZI_Width, ZI_Height: Integer);
{Pixel in die Grundfarben zerlegen}
Function R(Pixel: TColor): Byte;
Begin Result := Pixel mod 256; End;
Function G(Pixel: TColor): Byte;
Forum: Multimedia
Delphi
by himitsu,
20. Okt 2003
Das Beispiel sucht für jedes Pixel einzeln die 4 Pixel, welche dieses überlagern, und berechnet daraus einen entsprechenden Wert.
1 2 | 1 2
I | I
| 3 4
|
| z.B.: 1*25% + 2*25% + 3*25% + 4*25%
3 4 |
|
z.B.: 1*50% + 2*23% + 3*17% + 4*10%
Forum: Multimedia
Delphi
by himitsu,
20. Okt 2003
Wenn du dir mal mein Beispiel anschaust wirst du merken, das hier nicht nur die Zwischenpixel, sondern auch die "Hauptpixel" (wie sie hier überall genannt wurden), an Hand der 4 nächstliegensten Pixel und entsprechend ihres Abstands interpoliert werden.
Wenn zum Beispiel bei einer regelmäßigen Struktur Pixel (Zeilen/Spalten) eingefügt werden und sich die "Hauptpixel" nicht ändern, kann es...
Forum: Multimedia
Delphi
by himitsu,
19. Okt 2003
@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:
QI = QuellImage
ZI = ZielImage
Forum: Multimedia
Delphi
by himitsu,
18. Okt 2003
Bin wohl auch schon zu müde.
Dachte schon ich spinne - 10 = 2 (Signatur@S - tefano)
:gruebel: Hast mich jetzt total aus'm Konzept gebracht.
Forum: Multimedia
Delphi
by himitsu,
18. Okt 2003
Interpolation: Berechnug von Zwischenpixeln (Bildvergrößerung)
Antialiasing: ist im Grunde eine Kantenglättung (kann man aber gut ber der Bildvergrößerung/-verkleinerung verwenden)
Das Beispiel in der CodeLib ist allerdings nur für's reine Antialiasing ausgelegt. (nur Gättung, kein Zoom)
Bei dem anderen Thema kannst'e dir aber einige Anregungen für die Beschleunigung deiner Berechnung...
Forum: Multimedia
Delphi
by himitsu,
18. Okt 2003
schau mal hier, da hat man sich schon mit sowas beschäftigt.