Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Dateien

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

Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Dateien

#1 Beitrag von Johannes »

Der Windows-Explorer kennt leider nur „einfache“ Dateiendungen – die Dateien Datei.lod.ls3, Datei.lod1.ls3 und Datei2.ls3 haben für ihn alle die Endung .ls3.

Das macht die Dateiliste im Explorer oder „Datei öffnen“-Dialog ein bisschen unübersichtlich. Daher habe ich eine kleine Shell-Erweiterung geschrieben, die den verschiedenen Geschmacksrichtungen von LS3-Dateien verschiedene Symbole zuweist. So sieht das dann aus:

Bild Bild

Download der Symbolerweiterung hier

------

Um sich einen Überblick über die vielen bei Zusi 3 mitgelieferten 3D-Dateien zu verschaffen, ohne jede Datei einzeln öffnen zu müssen, eignet sich die Miniaturansicht und der Vorschaubereich im Windows-Explorer. Diese kann man um benutzerdefinierte Dateitypen erweitern, was ich für LS3-Dateien getan habe. Nach Installation der Erweiterung sieht es dann so aus:

Bild

Die Miniaturansichten werden nur für .lod.ls3-Dateien und .shape.xml-Dateien (Formkurven) generiert, um die Ladezeiten im Explorer nicht zu sehr zu verlangsamen. Der Vorschaubereich funktioniert für alle LS3- und .shape.xml-Dateien, dort kann man die Ansicht auch per Maus oder Tastatur schwenken.

Dateien mit Render-Voreinstellung „Benutzerdefiniert“ werden evtl. nicht korrekt dargestellt. Das betrifft nur sehr wenige Dateien.

Wenn eine verknüpfte Datei geändert wird, wird das Vorschaubild der .lod.ls3 nicht automatisch aktualisiert. Das ist eine Beschränkung des Windows-Explorers. Man kann in der Datenträgerbereinigung alle Miniaturansichten löschen, dann wird das Vorschaubild beim nächsten Mal neu generiert.

Download der Miniaturansicht hier
Zuletzt geändert von Johannes am 15.09.2023 22:36:16, insgesamt 10-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#2 Beitrag von Carsten Hölscher »

Ah, dann kann ich einen Punkt von meiner mittelfrstigen Aufgabenliste streichen :)
Allerdings gibt's für die Vorschau wohl noch einen besseren Ansatz, und zwar habe ich inzwischen eine Komponente erstellt, die man irgendwo auf ein Formular platziert und als 3D-Vorschau o.ä. nutzen kann (z.B. im Fahrplaneditor). Diese generiert das Bild aber nicht direkt, sondern das macht eine dll, die auch von jeder anderen Anwendung aufgerufen werden kann. Input: Dateiname, Breite, Höhe *); Output: eine Bitmapdatei.

Das hat den Vorteil, dass man keine eigene ls3-Visualsierung programmieren muss und keine entsprechenden Versionsprobleme usw. auftreten können.

Carsten

*) sinnvoll wäre ggf. noch eine Option für den Betrachterstandort, ist derzeit auf Loks/Wagen ausgelegt.
Zuletzt geändert von Carsten Hölscher am 24.10.2013 00:36:54, insgesamt 1-mal geändert.

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#3 Beitrag von Johannes »

Könnte man mal drüber nachdenken. Einlesen muss ich die Datei aber eh, um das Datum der letzten Änderung (inkl. verknüpfter Dateien) festzustellen und den Betrachterstandort zu berechnen. Selbst zeichnen spart dann natürlich I/O.

Grüße
Johannes

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#4 Beitrag von Carsten Hölscher »

Liest Du die ganze Struktur ein? Also würde z.B. bei einem Streckenmodul die ganze Modullandschaft dargestellt?
Wofür braucht man denn das Datum bei so einer Anwendung?
Carsten

Andreas Karg
Beiträge: 4718
Registriert: 28.04.2002 12:56:00
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#5 Beitrag von Andreas Karg »

Schätzungsweise, um das Bildchen zu aktualisieren, wenn sich nur eine verknüpfte Datei geändert hat. *rat*
Zuletzt geändert von Andreas Karg am 24.10.2013 11:38:52, insgesamt 1-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#6 Beitrag von Carsten Hölscher »

Werden die nur einmalig erzeugt und dann gespeichert?
Nachtrag: Diese Option hab ich z.B. eigentlich ausgestellt, damit nicht überall diese db-Dateien rumfliegen. Solche Nutzer müßte man schon berücksichtigen.
Carsten
Zuletzt geändert von Carsten Hölscher am 24.10.2013 11:43:28, insgesamt 1-mal geändert.

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#7 Beitrag von Johannes »

Carsten Hölscher hat geschrieben:Liest Du die ganze Struktur ein? Also würde z.B. bei einem Streckenmodul die ganze Modullandschaft dargestellt?
Im Moment ja. Das ist ein Grund, warum ich das eventuell auf .lod.ls3-Dateien beschränken werde. Alternativ würde man die Rekursionstiefe auf 1 oder 2 beschränken. Verknüpfte Dateien einlesen muss man auf jeden Fall, sonst kann man keine .lod.ls3- und fzg-Dateien darstellen (und gerade für die ist eine Vorschau sinnvoll, da man mit denen auch beim Streckenbau/Fahrplanbau zu tun hat).
Carsten Hölscher hat geschrieben:Nachtrag: Diese Option hab ich z.B. eigentlich ausgestellt, damit nicht überall diese db-Dateien rumfliegen. Solche Nutzer müßte man schon berücksichtigen.
Das (Nicht-)Speichern der Bilder ist Sache des Explorers. Die DLL stellt lediglich die passende Methode bereit, die das letzte Änderungsdatum der Datei zurückgibt. (Stichwort: IExtractImage2.)

Übrigens: Ab Windows 7 (oder 8?) liegen die Thumbs.db-Dateien nicht mehr überall rum, sondern werden zentral gespeichert. (Ja, ich weiß, dass du XP benutzt :) )

Grüße
Johannes
Zuletzt geändert von Johannes am 24.10.2013 12:06:43, insgesamt 2-mal geändert.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33384
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#8 Beitrag von Carsten Hölscher »

Interessant wäre in dem Zusammenhang noch ein Dateiauswahldialog mit integriertem Vorschaufenster für die selektierte Datei. Gibt's sowas seit Vista noch? Unter xp gibt es das ja bekanntlich.

Carsten

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#9 Beitrag von F. Schn. »

Der normale Öffnen-Dialog in Windows 6.X ist im Prinzip ein Explorer-Fenster. Daher steht dort auch Standardmäßig eine optionale Leiste mit Dateivorschau zur Verfügung. (Diese bietet aber natürlich nur dann sinnvolle Informationen, wenn auch eine Vorschau-DLL für den Dateityp verfügbar ist.) Wenn ich mich recht erinnere muss unter XP der Programmierer die Vorschau selbst in den Öffnen-Dialog einbauen, bei Windows 7 ist das jedenfalls nicht mehr nötig.

Johannes, habe ich dich jetzt richtig verstanden, oder liest du ohnehin jedes mal die komplette Datei ein, nur um das Änderungsdatum herauszubekommen?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#10 Beitrag von Johannes »

F. Schn. hat geschrieben:Johannes, habe ich dich jetzt richtig verstanden, oder liest du ohnehin jedes mal die komplette Datei ein, nur um das Änderungsdatum herauszubekommen?
Ja, das Änderungsdatum für die Vorschau ergibt sich aus dem Maximum der Änderungsdaten der Datei selbst und aller eingebundenen Dateien (Texturen, .lsb-Datei, verknüpfte Landschaften). Ich wüsste auch nicht, wie man das anders anstellen sollte. Schließlich soll die Vorschau für die .lod.ls3-Datei auch aktualisiert werden, wenn die .lod1.ls3-Datei geändert wurde.

Das Parsen der XML-Knoten mit den Geometriedaten und das ganze DirectX-Brimborium fällt dabei natürlich nicht an.

Grüße
Johannes

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#11 Beitrag von F(R)S-Bauer »

Hi,

schade das es so was für die Zusi2.ls nicht gibt...

mfg

Ralf
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Mr. X
Beiträge: 1336
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#12 Beitrag von Mr. X »

schade das es so was für die Zusi2.ls nicht gibt...
Könnte man doch programmieren. Grundsätzlich steht dem doch wahrscheinlich nichts im Wege, außer dass sich die Mühe vlt. niemand machen will.

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#13 Beitrag von Johannes »

F(R)S-Bauer hat geschrieben:schade das es so was für die Zusi2.ls nicht gibt...
Hab ich mir auch schon gedacht; so viel Aufwand dürfte das ja nicht sein. Am Wochenende stehen zwei längere Zugfahrten an; wer weiß, was sich da ergibt?

Grundsätzlich ist der Code auch quelloffen (GPL). Allerdings hängt er von der ATL aus Visual Studio 2013 ab, was ich als gewisses Manko empfinde (aber da es mein Einstieg in die COM-Entwicklung war, wollte ich das nicht unnötig verkomplizieren). Kann also sein, dass man mit freien Tools im Moment nicht weit kommt.

Grüße
Johannes
Zuletzt geändert von Johannes am 24.10.2013 23:01:09, insgesamt 1-mal geändert.

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#14 Beitrag von F(R)S-Bauer »

Hallo,
Johannes hat geschrieben: ...
Übrigens: Ab Windows 7 (oder 8?) liegen die Thumbs.db-Dateien nicht mehr überall rum, sondern werden zentral gespeichert. (Ja, ich weiß, dass du XP benutzt :) )

Grüße
Johannes
Was aber IMHO mehrere Nachteile hat:
1) die Datenbank und die Registry bläht sich auf
2) Auf Wechseldatenträgern wir die i.d.R immer wieder neu gemacht
3) Damit kann man in Probleme geraten wenn man mal was nichts Rechtskonformes aus Altzeiten auf dem Rechner findet und löscht. Es hatt bereits wegen der Thumb.dbs Anklagen gegeben wo die eigentlichen Inhalte (z.B Urheberechtlich geschützte Kochbuchbilder aus dem Internet) als Miniaturen in diese DB von den Organen der Rechtspflege gefunden wurden. Bei der alten Lösung waren die mit löschen des Ordners weg.

Weshalb man die Teile unter W7/8 auch abstellen sollte, genau so wie den Index und Suchdienst, der Speicher auch für 2 Ewigkeiten.

mfg

Ralf
Zuletzt geändert von F(R)S-Bauer am 26.10.2013 12:51:47, insgesamt 1-mal geändert.
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Mr. X
Beiträge: 1336
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#15 Beitrag von Mr. X »

1) die Datenbank und die Registry bläht sich auf
Und umgekehrt reduziert es den Overhead, der durch die vielen thumbs.db-Dateien entsteht.

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#16 Beitrag von Johannes »

Zugfahrten bei Nacht sind praktisch, man kann schön Vorschauen für .ls-Dateien programmieren und hat trotzdem keinen schönen Blick aus dem Fenster verpasst:

Bild

Die angesprochene Sache mit der Vorschau im Öffnen-Dialog unter Windows Vista und höher habe ich auch gleich gelöst. Es hat sich herausgestellt, dass dies mit der alten, zu Windows XP kompatiblen Programmierschnittstelle IExtractImage nicht geht, stattdessen muss die neue Variante IThumbnailProvider verwendet werden. Es sind jetzt einfach beide implementiert, sodass es nach wie vor ab XP funktionieren dürfte (getestet habe ich das nicht).

Download der neuen Version hier.

Grüße
Johannes

Benutzeravatar
F. Schn.
Beiträge: 6630
Registriert: 24.10.2011 18:58:26

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#17 Beitrag von F. Schn. »

Johannes hat geschrieben:
F. Schn. hat geschrieben:Johannes, habe ich dich jetzt richtig verstanden, oder liest du ohnehin jedes mal die komplette Datei ein, nur um das Änderungsdatum herauszubekommen?
Ja, das Änderungsdatum für die Vorschau ergibt sich aus dem Maximum der Änderungsdaten der Datei selbst und aller eingebundenen Dateien (Texturen, .lsb-Datei, verknüpfte Landschaften). Ich wüsste auch nicht, wie man das anders anstellen sollte. Schließlich soll die Vorschau für die .lod.ls3-Datei auch aktualisiert werden, wenn die .lod1.ls3-Datei geändert wurde.
Hm... Mir fällt da jetzt auch nichts anderes ein, bis auf die Möglichkeit, die Abhängigkeiten zwischen den Dateien + Zeitstempel der Dateien in einer geeigneten Datenbank zwischenzuspeichern...
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#18 Beitrag von F(R)S-Bauer »

Hallo, vielleicht bin ich ja zu blöd...

du schreibst:
Zur Architektur (x86 = 32 Bit, x64 = 64 Bit) passende Dateien entpacken, Ls3Thumb.dll in passendes Verzeichnis verschieben (muss später dort liegen bleiben)
..
Kommandozeile als Administrator starten und ins Verzeichnis der Ls3Thumb.dll wechseln
„regsvr32 Ls3Icons.dll“ ausführen
Es sollte die Meldung kommen, dass DllRegisterServer erfolgreich durchgeführt wurde. Danach einmal ab- und wieder anmelden.
Ist es beabsichtigt Ls3Icons.dll zu registrieren? bei mir geht es nähmlich nicht ....

mfg

Ralf
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

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

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#19 Beitrag von Johannes »

F(R)S-Bauer hat geschrieben:Ist es beabsichtigt Ls3Icons.dll zu registrieren? bei mir geht es nähmlich nicht ....
Nee, das ist natürlich ein Copy&Paste-Fehler. Soll Ls3Thumb heißen, ist korrigiert, danke.
F. Schn. hat geschrieben:Mir fällt da jetzt auch nichts anderes ein, bis auf die Möglichkeit, die Abhängigkeiten zwischen den Dateien + Zeitstempel der Dateien in einer geeigneten Datenbank zwischenzuspeichern...
Dann müsstest du aber zusätzlich bei jeder Änderung an einer der Dateien die Datenbank aktualisieren (also nicht nur beim Aufrufen der Thumbnail-Generier-Routine). Solch einen Apparat würde ich ungern bauen, zumal im Endzustand nicht so viele Dateien zusätzlich eingelesen werden dürften. Aber wenn das jemand programmieren will … bitte :)

Grüße
Johannes

F(R)S-Bauer
Beiträge: 6281
Registriert: 09.11.2002 02:00:47

Re: Ls3Icons, Ls3Thumb: Symbole/Miniaturansicht für LS3-Date

#20 Beitrag von F(R)S-Bauer »

Hallo,

Es gibt noch Optimierungpotential:

Bild

Windows 7.
Beim Ersten Durchlauf brachte er ein paar mehr Symbole, das sah schon ganz gut aus, aber auch nicht alle.
Nach dem Umschalten auf "Große Symbole" waren noch einige Symbole Auf-blitzen beim Durch scrollen zu sehen.
Nach dem zurückschalten gab es dieses Bild.

Dann noch ein Vorschlag, Man kann Leer und Unglückliche Ansicht nicht unterscheiden.
Vielleicht solltest du bei "Leer" einfach ein z.B Weißes Kreuz rein malen, oder "Leer" als Wortbild ausgeben.
Des weiteren sollte bei Fehlern z.B . ein Icon Error angezeigt werden.


Nachtrag:
Sieht so aus als ob die Funktion nach der 1. Datei aufhört mit dem Durchlauf. Jedenfalls ist ein Reboot erforderlich um wieder ein paar mehr Icons zu sehen, bis das Verhalten wieder austritt.

mfg

Ralf
Zuletzt geändert von F(R)S-Bauer am 02.11.2013 11:05:55, insgesamt 4-mal geändert.
Verstehe die IT, heute: IoF -> Internet over Fax, eine Deutsch Erfindung...

Antworten