Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Überflüssigen Hindergrund bei Bildern entfernen

  Alt 26. Jun 2013, 21:49
So sollte es gehen:
Code:
var left, right, top, bottom: integer := 0;

für jede Zeile y := 0 .. height-1:
  für jede Spalte x := 0 .. width-1:
    wenn pixel[x,y] <> WEIß dann:
      top := min(top, y);
      bottom := max(bottom, y);
      left := min(left, x);
      right := max(right, x);
Das kannst du sicher so umsetzen, dass es Scanline benutzt

Man könnte einige min und max einsparen, aber so sollte das Grundprinzip klar werden:
Gesucht ist die x-Koordinaten der nicht-weißen Pixel am weitesten links und rechts sowie die y-Koordinaten der nicht-weißen Pixel am weitesten oben und unten.

Wenn die Ränder verhältnismäßig klein sind, könnte es etwas bringen, top und bottom beziehungsweise left und right aus unterschiedlichen Richtungen zu suchen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (26. Jun 2013 um 21:54 Uhr)
  Mit Zitat antworten Zitat