Suche Resize+Border Funktion

  • Hallo zusammen, ich suche eine Möglichkeit (Funktion) ein fehlerfreies Seitenverhältnis zu berechnen, jedoch ohne zu Cropen.

    Mal ein Beispiel, wie es die meisten machen:
    Quelle: NTSC 720x480 4:3 Wert 0.9115847
    Ziel: 576x416 1:1 Wert 1.0
    Resize Fehler: -1.3%
    Möglichkeit A: LanczosResize(576,416,0,2,0,-4)
    Möglichkeit B: LanczosResize(576,416,0,3,0,-3)

    Quellgröße per GK berechnetes & Resize Fehler 0%: 729x480
    Möglichkeit: AddBorders(5,0,4,0).LanczosResize(576,416)

    meine Wunschfunktion sollte wie folgt aufgerufen werden:

    BoarderResize( clip , out_width , out_height , par_in , par_out , pos_border)
    out_width: Zielweite
    out_height: Zielhöhe
    par_in: Eingangs Seitenverhältnis *
    par_out: Ausgangs Seitenverhältnis *
    pos_border: entweder Erzwungenes Links/Rechts oder Oben/Unten falls des überhaupt Möglich ist.

    Code
    [COLOR='Red']* Standard Seitenverhältnisse:[/COLOR]
    #PAL 4x3	= 1.09401709401
    #PAL 16x9	= 1.45868945867
    #NTSC 16x9	= 1.2154467
    #NTSC 4x3	= 0.9115847

    könnte da mal jedmand drüber nachdenken? Danke.

  • Wichtig ist halt nur, das nichts geCropt wird.

    Denn eine Ähnliche Funktion, auf Basis von ARCT, welche Perfekt funktioniert, hat mir scharfi schon geschrieben. jedoch kommen da die Border nach dem Resize dran. Wenn es anders rum ist, sind die Ränder weicher :)

    PS: leider hat scharfi nicht mehr so viel Zeit, glaube der kümmert sich ein bissl um seinen Stammbaum

  • Übersehe ich nun etwas oder willst Du, dass das Material auf:

    (Output_width) x (Input_width*par_in/par_out*output_width/input_width) geresized wird und dann sollen noch Ränder hinzugefügt werden damit die Input_width = Output_width ist?

    Cu Selur

  • glaube Du verstehst nicht. Wie schon oben beschrieben...

    1: Wenn meine Quelle 720x480x4:3 hat und ich es nach 576x416x1:1 Resizen will, ohne zu Cropen, entsteht ein Resize-Fehler von -1.3%.

    2: somit schneiden fast alle Programme am Video solange rum, bis kein oder sehr minimaler Resize-Fehler vorkommt.
    2b: oder sie Resizen und klatschen dann Ränder dran (und die sind zu scharf)

    3: wenn man aber zur QuellAuflösung Ränder addiert und danach das Ziel ausrechnet (Resize-Fehler von 0%), braucht man nix Cropen und die Ränder sind schön weich.

    Also erst Ränder addieren, dann Resizen. Nicht andersrum.

    verstehste?

  • Ah, langsam dämmert es. ;)

    Also erstmal:
    Entzerren, Ränder ranpacken, so dass das Ziel-AspectRatio erfüllt ist, dann Resizen. :) (oder? ;))

    Ja Langsam...

    1: solange Ränder ranpacken, bis das
    2: Resizen der Ziel-Größe kein Resize-Fehler mehr gibt.

    Dabei muß natürlich der Quell/Ziel AspectRatio berücksichtigt werden.
    Quelle: 720x480x4:3
    Ziel: 576x416x1:1

    1: LanczosResize(576,416) = ResizeFehler -1.3%
    2: AddBorders(2,0,2,0).LanczosResize(576,416) = ResizeFehler -0.7%
    3: AddBorders(3,0,3,0).LanczosResize(576,416) = ResizeFehler -0.4%
    4: AddBorders(4,0,4,0).LanczosResize(576,416) = ResizeFehler -0.2%
    5: AddBorders(5,0,4,0).LanczosResize(576,416) = ResizeFehler 0%

  • Nette Idee, jetzt das Ganze noch in eine math. Gleichung stecken und dann kann eine Funktion geschrieben werden.
    Aber wie auch immer .... interpoliert wird so oder so und was das Croppen angeht, da kann man sich aussuchen ob man 720x576 nach 768x576 mit vorherigen Croppen oder so wie du es willst in 768x560 (= (768/788)*576) komplett reinpacken, dass es passt.

    Die eigentliche AR Falle und Interpolations-Turbo ist wenn man forced MOD 16 resizen will, gehe hin und resize mit MOD 2 o.ä. und du wirst sehen wi fix da borders vorher dran geklebt werden anstatt stupide zu croppen.

  • so habe mein ARCT Script mal umgeschrieben und bin gerade im Test...

    LinksOben: erst Resize, dann Ränder dran.
    LinksUnten: erst Ränder dran, dann Resize. (weiche Ränder)
    Rechts: meine Filtframe funktion, da wird geCropt, damit es keine Ränder gibt. Fitframe setzt hier die Ränderfunktion außerkraft. :)

    http://img181.imageshack.us/img181/2296/arctpal2avsiwa9.jpg

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!