Simpler LED-Zugzielanzeigen-Generator

Alles, was nicht in die anderen Kategorien passt.
Antworten
Nachricht
Autor
Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Simpler LED-Zugzielanzeigen-Generator

#1 Beitrag von Johannes »

Quasi aus der Not heraus ist heute Nachmittag ein einfacher Generator für LED- oder Flipdot-Zugzielanzeigen entstanden. Gesucht war ein Programm, das Folgendes als Eingabe nimmt:
  • ein Schwarzweißbild, das die An-/Aus-Positionen kodiert: Bild
  • zwei Bilder für die Zustände „Pixel an“ Bild und „Pixel aus“ Bild
und daraus die fertige Zielanzeige generiert (Klick für Originalgröße):
Bild
Dieses Bild kann dann für eine Textur weiterverwendet (etwa herunterskaliert) werden.

Es sind simple 30 Zeilen in PHP (die GD-Bibliothek wird benötigt), die man hier herunterladen kann: http://pastebin.com/eRaFiZpj" target="_blank . Außerdem habe ich das Ganze durch einen Konverter gejagt, mit dem ein Windows-(Kommandozeilen-)Programm entstanden ist, das man hier herunterladen kann.

Der Aufruf ist in beiden Fällen gleich: Auf der Kommandozeile

Code: Alles auswählen

php lcdgen.php schwarzweissbild.png pixelan.png pixelaus.png zieldateiname.png
bzw. für die Windows-Version

Code: Alles auswählen

lcdgen.exe schwarzweissbild.png pixelan.png pixelaus.png zieldateiname.png
Anmerkungen:
  • Der „An-Pixel“ wird genau dort platziert, wo im Eingabebild ein komplett schwarzer Pixel ist (R=0, G=0, B=0).
  • Es wird angenommen, dass die Bilder für „An“ und „Aus“ gleich groß sind.
  • Von den Einsen und Nullen, die ausgegeben werden, sollte man sich nicht beirren lassen; wenn das Konsolenfenster breit genug ist, ergeben diese die Schwarzweiß-Repräsentation des Eingabebildes.
  • Als Eingabeformate sollten JPEG, PNG, GIF, WBMP und GD2 unterstützt werden (getestet nur mit PNG), das Ausgabeformat ist immer PNG.
Vielleicht hat ja irgendjemand genau das gesucht … schaden wird die Veröffentlichung jedenfalls niemandem :)

Grüße
Johannes

Edit: Titel
Edit: Bild ausgetauscht, war mit einer veralteten Version des Skripts erzeugt worden
Zuletzt geändert von Johannes am 08.09.2012 19:42:57, insgesamt 2-mal geändert.

Benutzeravatar
Christian Gründler
Beiträge: 2210
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Simpler LED-Zugzielanzeigen-Generator

#2 Beitrag von Christian Gründler »

Hallo Johannes,

sieht gut aus :tup .

Eine Frage: wie kommst Du zu dem Schwarz-Weiß-Bild?

Und ein Hinweis: JPEG als Input kannst Du wegen der typischen Artefakte ziemlich sicher vergessen.

M.f.G. Christian

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Simpler LED-Zugzielanzeigen-Generator

#3 Beitrag von Johannes »

Christian Gründler hat geschrieben:Hallo Johannes,

sieht gut aus :tup .

Eine Frage: wie kommst Du zu dem Schwarz-Weiß-Bild?
Das habe ich in GIMP erstellt. Die Bildgröße entspricht genau der Auflösung der Anzeige (in diesem Fall 124x16), die Schrift habe ich mit dem Textwerkzeug von GIMP erstellt (Kantenglättung und Hinting ausschalten!). Als Schriftart habe ich diese hier verwendet; besser wäre aber wahrscheinlich eine „echte“ Pixelschrift, da beim Herunterskalieren der „Matrix Complex NC“ die Punkte der Buchstaben leider nicht genau in Pixel auf dem Bildschirm umgewandelt werden.
Und ein Hinweis: JPEG als Input kannst Du wegen der typischen Artefakte ziemlich sicher vergessen.
Ja, das sollte man vielleicht dazu sagen. Ich habe es wie gesagt nur mit PNG getestet, die Angaben über die unterstützten Formate stammen 1:1 von http://php.net/manual/de/function.image ... string.php" target="_blank ;)

Grüße
Johannes

Benutzeravatar
Max Senft
Administrator
Beiträge: 3004
Registriert: 04.11.2001 14:01:40
Aktuelle Projekte: Dies und das
Wohnort: Blieskastel, Saarland, Deutschland
Kontaktdaten:

Re: Simpler LED-Zugzielanzeigen-Generator

#4 Beitrag von Max Senft »

Hi,

schonmal mit dem Erstellen des Eingabebildes über PHP versucht? Hier gibt es auch systemübergreifende einheitliche Schriftarten, die - wenn ich mich nich irre - auch recht pixelig sind. So könnte als Parameter der Text übergeben werden, sowie die Bildgröße?

Grüße
Max
Administrator, Programmierer, Ansprechpartner bei Problemen mit dem Board

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Simpler LED-Zugzielanzeigen-Generator

#5 Beitrag von Johannes »

Max Senft hat geschrieben:Hi,

schonmal mit dem Erstellen des Eingabebildes über PHP versucht? Hier gibt es auch systemübergreifende einheitliche Schriftarten, die - wenn ich mich nich irre - auch recht pixelig sind. So könnte als Parameter der Text übergeben werden, sowie die Bildgröße?
Ob da auch eine LED-Matrix-Schriftart vorhanden ist? Hm …

Ich halte es aber für zielführender, das Tool nur mit einem Bild zu füttern. Da hat man dann schon eine gewisse Vorstellung, wie das Bild nachher aussieht, und kann außerdem recht schnell pixelgenau Korrekturen durchführen. In einigen Fällen wird man das Ausgangsbild ja vielleicht sogar Pixel für Pixel aus einem Foto „abmalen“.

Vor allem aber müsste ich bei dieser Herangehensweise sämtliche jemals denkbaren Layouts von Matrixanzeigen unterstützen. Das braucht sicher mehr als 30 Zeilen PHP :-) Als Beispiel sei so etwas Bild genannt oder dieses Bild hier. Mit Paint ist so etwas in wenigen Minuten gemalt; das zu programmieren wäre dagen sehr aufwändig.

Grüße
Johannes

Benutzeravatar
Thomas U.
Beiträge: 3289
Registriert: 15.03.2004 16:39:15
Wohnort: Gelsenkirchen

Re: Simpler LED-Zugzielanzeigen-Generator

#6 Beitrag von Thomas U. »

Interessante Sache :tup
Johannes hat geschrieben:Als Beispiel sei so etwas Bild genannt [...]
...aber bei mir geht auch das in ein paar Minuten :mua
Bild

Das Erstellen der Quelldatei mit ihren 128x21 Nullen und Einsen ist zwar eine etwas blöde Arbeit, aber nach mittlerweile über 800 Zielen hab' ich da so meine Übung :angst
Die Variante, ein Schriftbild auszulesen, hatte ich auch schon in Gedanken, die richtige Formatierung der Anzeige war mir dann aber doch eine Spur zuviel mit ihren verschiedenen Schriften, Abständen und Sonderzeichen.

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Simpler LED-Zugzielanzeigen-Generator

#7 Beitrag von Johannes »

Thomas U. hat geschrieben:Interessante Sache :tup
Johannes hat geschrieben:Als Beispiel sei so etwas Bild genannt [...]
...aber bei mir geht auch das in ein paar Minuten :mua
Bild

Das Erstellen der Quelldatei mit ihren 128x21 Nullen und Einsen ist zwar eine etwas blöde Arbeit, aber nach mittlerweile über 800 Zielen hab' ich da so meine Übung :angst
Sieht sehr schön aus, insbesondere der Schriftzug „Eilzug“ (den ich mangels Vorlage von Hand erstellt habe) ist viel besser gelungen.

Herunterskaliert und invertiert Bild eignet sich das Bild übrigens hervorragend als Quelldatei für mein Tool:

Bild

Oder hätten S' lieber gerne eine Flipdot-Anzeige?

Bild

Oder doch lieber wieder das Originalbild?

Bild

Oder das Originalbild, aber animiert?

Bild

:hat2

Im Ernst, darf ich deinen Worten also entnehmen, dass du auch solch ein Tool besitzt (welches ich nicht kenne), das mit Nullen und Einsen als Eingabe arbeitet statt eines Schwarzweißbildes? Vielleicht magst du es ja mal vorstellen, ich fände es durchaus interessant.

Sowieso fände ich es grundsätzlich gut, wenn jeder solche kleinen Helferlein oder einfach Tricks hier vorstellt. Im besten Fall helfen sie jemandem, der das gleiche Problem hat, und im schlimmsten Fall … es gibt keinen schlimmsten Fall :)

Grüße
Johannes

Benutzeravatar
Thomas U.
Beiträge: 3289
Registriert: 15.03.2004 16:39:15
Wohnort: Gelsenkirchen

Re: Simpler LED-Zugzielanzeigen-Generator

#8 Beitrag von Thomas U. »

Johannes hat geschrieben: :hat2

Im Ernst, darf ich deinen Worten also entnehmen, dass du auch solch ein Tool besitzt (welches ich nicht kenne), das mit Nullen und Einsen als Eingabe arbeitet statt eines Schwarzweißbildes? Vielleicht magst du es ja mal vorstellen, ich fände es durchaus interessant.
Hätte ich nun nicht gedacht, dass das Bild dafür taugt...

Gewissermaßen, ja. Die Anzeige ist Teil eines virtuellen Fahrgastinformationssystems (auf init-EFAD-integral-Basis der Bogestra), was ich mir über die Zeit zusammenprogrammiert habe, entstanden aus dem Gedanken, ein kleines Zusatzprogramm für VirtualBus (wer kennt es noch?) zu basteln. Mittlerweile ist es mehr eine Anwendung, um meinen "Spieltrieb" zu zügeln :rolleyes:
Neben der Zielanzeige, wahlweise als Flipdot (wie deine animierte Variante) oder LED (direkter Wechsel) in verschiedenen Farben, gibt es noch eine altmodische Haltestellenanzeige, einen neumodischen Linienverlaufsbildschirm und natürlich auch passende Ansagen. An einer ansatzweisen Darstellung des Ticketverkaufs sitze ich gerade.

Bild

Das Hauptfenster mit seiner Kombination aus gemaltem Display und fotografierter Tastatur mag zwar nicht jedermanns Geschmack sein, mir gefällt es jedoch immernoch besser als ein Bitmaptastenfeld. Ich würde da auch ganz gerne noch mal ein neues Bild machen, aber leider wurden diese Geräte mittlerweile durch neuere mit RBL-Funktion ersetzt, die ein anderes Tastaturlayout haben.

Die Darstellung der Anzeige ist aber auch nicht viel anders als bei dir. Textdatei einlesen, 0 = grau, 1 = grün (oder wie es einem eben beliebt) und mit zwei Schleifen und einer kleinen Formel die Punkte zeichnen. Darauf bin ich allerdings auch erst nach Jahren der Experimente mit Textfeldern gekommen :confused:
Zuletzt geändert von Thomas U. am 10.09.2012 14:19:20, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Simpler LED-Zugzielanzeigen-Generator

#9 Beitrag von Johannes »

Thomas U. hat geschrieben:Die Anzeige ist Teil eines virtuellen Fahrgastinformationssystems (auf init-EFAD-integral-Basis der Bogestra), was ich mir über die Zeit zusammenprogrammiert habe, entstanden aus dem Gedanken, ein kleines Zusatzprogramm für VirtualBus (wer kennt es noch?) zu basteln. Mittlerweile ist es mehr eine Anwendung, um meinen "Spieltrieb" zu zügeln :rolleyes:
Neben der Zielanzeige, wahlweise als Flipdot (wie deine animierte Variante) oder LED (direkter Wechsel) in verschiedenen Farben, gibt es noch eine altmodische Haltestellenanzeige, einen neumodischen Linienverlaufsbildschirm und natürlich auch passende Ansagen. An einer ansatzweisen Darstellung des Ticketverkaufs sitze ich gerade.
Das sieht ja mal recht schick aus (wobei ich mir die Bemerkung nicht verkneifen kann, dass ich in echt wohl jeden Verkehrsbetrieb, der seine Fahrgastdisplays in Comic Sans betreibt, rundheraus boykottieren würde :rolleyes:).

800 Ziele mit dem Texteditor sind ja schon eine ziemliche Fleißarbeit, d.h. du hast jeden Buchstaben einzeln erstellt? Oder hattest du eine Copy&Paste-Möglichkeit (z.B. blockweises Kopieren und Einfügen)?

Grüße
Johannes

Benutzeravatar
Thomas U.
Beiträge: 3289
Registriert: 15.03.2004 16:39:15
Wohnort: Gelsenkirchen

Re: Simpler LED-Zugzielanzeigen-Generator

#10 Beitrag von Thomas U. »

Johannes hat geschrieben:Das sieht ja mal recht schick aus (wobei ich mir die Bemerkung nicht verkneifen kann, dass ich in echt wohl jeden Verkehrsbetrieb, der seine Fahrgastdisplays in Comic Sans betreibt, rundheraus boykottieren würde :rolleyes:).
Ich oute mich mal als Comic-Sans-Möger :O
Was könnte man denn noch nutzen, das optisch ein wenig weniger standardmäßig aussieht wie Arial und Co?
Johannes hat geschrieben:800 Ziele mit dem Texteditor sind ja schon eine ziemliche Fleißarbeit, d.h. du hast jeden Buchstaben einzeln erstellt? Oder hattest du eine Copy&Paste-Möglichkeit (z.B. blockweises Kopieren und Einfügen)?
Die obere Zeile ist ja oft gleich, die konnte man natürlich bei einigen Zielen übernehmen, sodass nur die untere neugeschrieben werden musste. Einige Ziele sind auch doppelt drin oder um eine wechselnde Via-Angabe ergänzt, das war natürlich reines Copy&Paste. Der Großteil wurde aber Buchstabe für Buchstabe selbst zusammengesetzt, ja. Nach einiger Zeit flutscht das allerdings locker aus der Hand. Nur sollte man nicht allzu lange auf den Bildschirm starren, die Nullen und Einsen machen wahnsinnig :rolleyes:

Für die Linien habe ich dann aber doch keine 999 Dateien erstellt :dead Standardkram wie U35, 383, SB36, ... (gemäß Bogestra-Codierung) besteht aus zwei Dateien, eine für das erste Zeichen, eine für die folgenden. Diese werden dann vom Programm zusammengesetzt. Der SB36 besteht also z.B. aus den Dateien "9xx" (900er = SBxx), "x3" und "x6". Vom Standard abweichende Anzeigen (die Linie 744 ergibt z.B. ein Fußballsymbol) haben eigene Dateien, deren Vorhandensein erst geprüft wird, bevor die Standarddateien genutzt werden.

Stephan/Taschi
Beiträge: 1050
Registriert: 30.10.2009 11:40:27
Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein

Re: Simpler LED-Zugzielanzeigen-Generator

#11 Beitrag von Stephan/Taschi »

Comic Sans ist nicht per se schlecht, nur halt sehr ausgelutscht.

Guck mal unter http://www.fontsquirrel.com/" target="_blank, da gibt es einige sehr schicke (kostenlose) Schriftarten in quasi allen Richtungen. Für ein FIS ist allerdings eine sehr schlichte serifenlose Font angebracht.
Zuletzt geändert von Stephan/Taschi am 11.09.2012 15:21:04, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3201
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Simpler LED-Zugzielanzeigen-Generator

#12 Beitrag von Johannes »

Stephan/Taschi hat geschrieben:Comic Sans ist nicht per se schlecht, nur halt sehr ausgelutscht.

Guck mal unter http://www.fontsquirrel.com/" target="_blank, da gibt es einige sehr schicke (kostenlose) Schriftarten in quasi allen Richtungen. Für ein FIS ist allerdings eine sehr schlichte serifenlose Font angebracht.
Jup, ich denke spontan z.B. an Droid Sans oder so etwas (sieht noch etwas interessanter aus als Arial und Co.).

Sei mir aber bitte nicht böse wegen der Comic-Sans-Basherei – wie Stephan schon schrieb, ist die halt bei manchen ein wenig verpönt, da man sie viel zu oft zu sehen bekommt (zumal noch auf dem Papier, wofür sie eigentlich nie gedacht war). Mein Satz bezog sich aber vor allem darauf, dass die bei einen echten Verkehrsbetrieb zu verspielt respektive nicht sehr professionell aussähe.

Aber das ist eben der Vorteil am Schreiben eigener Software: Man hat das Glück, die Regeln selbst bestimmen zu können. Also bitte nicht persönlich nehmen (und ruhig Comic Sans weiterverwenden) ;)

Grüße
Johannes

Stephan/Taschi
Beiträge: 1050
Registriert: 30.10.2009 11:40:27
Aktuelle Projekte: Zusi boykottieren, gelegentlich mal gesperrt sein

Re: Simpler LED-Zugzielanzeigen-Generator

#13 Beitrag von Stephan/Taschi »

Droid Sans gefällt ;)

Benutzeravatar
Thomas U.
Beiträge: 3289
Registriert: 15.03.2004 16:39:15
Wohnort: Gelsenkirchen

Re: Simpler LED-Zugzielanzeigen-Generator

#14 Beitrag von Thomas U. »

Stephan/Taschi hat geschrieben:Guck mal unter http://www.fontsquirrel.com/" target="_blank, da gibt es einige sehr schicke (kostenlose) Schriftarten in quasi allen Richtungen. Für ein FIS ist allerdings eine sehr schlichte serifenlose Font angebracht.
Danke, werde ich mal durchschauen. Vielleicht findet sich ja was.
Johannes hat geschrieben:Sei mir aber bitte nicht böse wegen der Comic-Sans-Basherei – wie Stephan schon schrieb, ist die halt bei manchen ein wenig verpönt, da man sie viel zu oft zu sehen bekommt (zumal noch auf dem Papier, wofür sie eigentlich nie gedacht war).
Ich bin zutiefst gekränkt :sick
Quatsch, ist doch kein Problem, ganz im Gegenteil, wenn man was zum schmunzeln hat, ist die Welt doch gleich viel schöner :bpl
Ich muss allerdings in einer verkehrten Welt leben, denn wirklich oft habe ich sie bisher noch nie gesehen. Oder man ist schon zu gewöhnt daran, dass man sie garnicht mehr wahrnimmt...

Antworten