jede Fünfte Spalte aus PNG / Video speichern

  • Hallo Freunde :)
    ich bin grad am verzweifeln. Ich muss eine LED-Fassade bespielen.
    Auf 585x60px erstelle ich ein PNG oder Video. Aber jetzt kommt der Clou, Die LED-Fassade hat nur 117x60, ist aber so breit wie 585, heisst, nur jede 5 Pixel-Spalte brauche ich, muss diese aber wiederrum ohne leerräume aneinanderketten. Wie speicher ich nun ein PNG oder Video, bei dem nur jede 5te Pixel-Spalte aneinanderegereit ist, ab?

    Vielen Dank für Ideen und Hilfe :)

  • Irgendwie versteh ich dein Problem noch nicht so recht. Das ist doch hier ein typischer Fall von "Anamorpher Encodierung" - man erzeugt ein gestauchtes Video, weil es bei der Wiedergabe ja entzerrt wird:

    1) mit Interpolierung (Gauss / Spline) resizen auf 117x60

    Eigentlich müsste das reichen. Du hast ja nur 117 Pixel in der Breite, aber ein Pixel hat das Seitenverhältnis (PAR = Pixel Aspect Ratio) 5:1. Wenn du sehen willst, wie das wirkt, kannst du zur Vorschau aber

    2) ohne Interpolierung (mit PointResize) resizen auf 585x60

    Dann hast du einen gewissen Posterisierungseffekt, jeder Pixel wird einfach 5x wiederholt. Allerdings ohne Gewähr, wie das Verfünffachen nun pixelexakt läuft.

  • Okay, also das Bild darf dann aber nicht weichgezeichnet werden beim Resizen, ich brauch die Pixel 100% Original. Da liegt so meine Befürchtung drin.

  • Wie entwirfst du denn das "Original"? Hat das eine höhere Auflösung? Ist 585x60 dein Ausgangspunkt? Also ich finde, 5:1 ist ein unheimliches Seitenverhältnis. Und bei einer effektiven Auflösung von 117x60 bleibt dir gar nichts anderes übrig: Ein 1:1-Pixel-Original muss beim Herunterskalieren zwangsläufig weichgezeichnet werden, um Aliasing (Treppenstufen) zu vermeiden. Ansonsten müsstest du damit rechnen, dass es Ausfälle im Bild gibt, bei sanften Bewegungen würde alles wie wild flackern (Quake hatte eine Funktion "mipscale", die ähnliches bei fernen Texturen verhindern sollte).

    Bild 1: Das würdest du zunächst entwerfen.

    Bild 2: Das würdest du nach einem Stauchen an das Display schicken.

    Bild 3: So würde das Display den Inhalt von Bild 2 anzeigen.

    Bild 4: Ausschnittsvergrößerung

    Ein PAR von 5:1 - das muss Scheiße aussehen. ;)

  • Am besten mal die Datei anschauen die ich angehängt habe. Diese Datei ist eine Vorlage wie die LED-Leinwand in echt aussieht. Jeder Pixel ist dort eine LED, ausser die schwarzen Pixel, die sind als LED nicht vorhanden. Das Display ist also 5:1 . Bei der Fütterung der LED-Leinwand "weiss" die Anlage nicht, dass die schwarzen Blöcke keine LEDs sind. Also muss ich die schwarzen Blöcke wegmachen und ihr nur die Pixel geben die Sie auch wirklich dargestellen kann, die eine LED sind. Also brauch ich nur Pixel-Spalte 1,6,11,16... . ...Im Grunde könnte ich crop() nehmen, aber dann müsste ich sowas ja 117mal machen... (pro Bild) :-S

    EDIT: gibt es multi-crops?

  • Wenn ich nur jedes 5. Pixel pro Zeile in einer Grafik lasse, und die anderen 4/5 Pixel herausschneide, dann schrumpfe ich doch dadurch die Breite auf 1/5, oder nicht?

    Also gib der Anlage doch einfach mal ein Bild wie nach Schritt 2.

    Und wenn die Anlage doch ein Bild braucht, dass 585 Pixel breit ist, dann gib ihr das Bild nach Schritt 3. Da haben immer je 5 Pixel nebeneinander den selben Wert. Und ob dafür nun der erste, zweite, ... oder fünfte von je fünf Pixeln verwendet wird, und die jeweils anderen 4 ignoriert werden, kann dir dann reichlich egal sein, schließlich sind immer je 5 Pixel identisch (weil du dafür PointResize verwendet hast).

Jetzt mitmachen!

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