AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

5x5-Blur bzw. "Antialiasing"

Ein Thema von dizzy · begonnen am 26. Nov 2003 · letzter Beitrag vom 4. Dez 2003
Antwort Antwort
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: 5x5-Blur bzw. "Antialiasing"

  Alt 27. Nov 2003, 14:52
Zitat:
Der Unterschied ist das mit TRGBTriple es lesbarer wird.
Naja okay. Ich persönlich finde es so schöner. Über Geschmack lässt sich ja bekanntlich nicht streiten .

Zitat:
Ich seh gerade noch mehrere Fehler.
Die Schleifen sollten doch wohl bis Width-3 bzw Height-3 laufen.
Probier's doch mal aus. Dann läufst du über die Zeilenenden bzw. Spaltenenden. Bei der y-Schleife fange ich bei 2 an damit sich das Zielbild nicht nach oben verschiebt. Ist schon in Ordnung so. Man muss halt nur meine Anmerkung beachten: Die Ränder (2 Pixel breit) werden ausgelassen und Zeit zu sparen.

Zitat:
Die Groesse des Zielbildes sollte gesetzt werden.
Das Zielbild wird als Parameter übergeben und ist somit bereits definiert.

Aufruf z.B.:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var bmp1, bmp2 : TBitmap;
begin
  bmp1 := TBitmap.Create;
  bmp1.Width := 800;
  bmp1.Height := 600;
  bmp1.PixelFormat := pf24Bit;

  bmp2 := TBitmap.Create;
  bmp2.Width := 800;
  bmp2.Height := 600;
  bmp2.PixelFormat := pf24Bit;

  AntiAlias5(bmp1, bmp2);
end;
Zitat:
Öhm. Könntest du deine Codeformatierung etwqas an den Objeect Pascal Style Guide anpassen?
Öhm. Wo genau ist dein Problem?
Etwa hier?
Delphi-Quellcode:
        Po^[1] := round((( P1^[4]+P1^[7]+P1^[10] +
                          P2^[1] +P2^[13]+
                          P3^[1] +P3^[13]+
                          P4^[1] +P4^[13]+
                                 P5^[4]+P5^[7]+P5^[10]) / AntAussen)+ // Äussere Region

                               ((P2^[4]+P2^[7]+P2^[10] +
                                 P3^[4] +P3^[10] +
                                 P4^[4]+P4^[7]+P4^[10]) / AntMitte)+ // Mittlere Region

                                       (P3^[7] / AntInnen)); // Zentrum
Das hab ich mit vollster Absicht so gamcht, damit man die grafische vorstellung gleich mit im Code hat. Von mir aus kann man aber auch so schreiben:
Delphi-Quellcode:
Po^[1] := round(((P1^[4]+P1^[7]+P1^[10]+P2^[1]+P2^[13]+P3^[1]+P3^[13]+P4^[1]+P4^[13]+P5^[4]+P5^[7]+P5^[10]) / AntAussen)+
                ((P2^[4]+P2^[7]+P2^[10]+P3^[4]+P3^[10]+P4^[4]+P4^[7]+P4^[10]) / AntMitte)+
                 (P3^[7] / AntInnen));
Nur hilft das dem Verständnis dessen, was da passiert nicht wirklich weiter...

Oder isset, weil ich das "begin" auch noch eine Spalte einrücke? Oder weil "AntAussen" nicht "antAussen" heisst? Oder ist der Prozedurname ungünstig? "do5x5AA(bmp1, bmp2);" besser?

Wenn es überhaupt nicht den "optischen Ansprüchen" genügt, dann kann ich's natürlich ändern. Aber der Lesbarkeit hälfe das meiner Meinung nach nicht wirklich weiter. Ich will keinem an die Karre fahren! Nur wissen, wo jetzt genau der Knackpunkt ist.


gruss,
dizzy

\edit: Delphi-Tags korrigiert
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz