Zurück   KNX-User-Forum > Öffentlicher Bereich > Praxis
knx-user-forum - International KNX Award Winner 2010


Links
Kalender
Spende

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 31.12.2008, 15:56
Erfahrener Benutzer
 
Registriert seit: 02.06.2007
Ort: Gießen
Beiträge: 821
HartmutB wird schon bald berühmt werdenHartmutB wird schon bald berühmt werden
Standard I like to move it - Oder wie erstelle ich animierte GIFs für eine Visu

Die Kinokenner werden erkennen, in welchem Film (Tipp: es ist Teil 2) ich gestern mit meinen Kindern war ...


Ich bin im Moment 'mal wieder an der optischen Gestaltung meiner ipod PocketVisu und habe dort eine Seite mit dem Heizungsschema erstellt. Für die Anzeige der Pumpen wollte ich ein "drehendes Etwas" haben und habe hier im Forum genauso wie über Google nach dem "How-To" gesucht.

Ich Moment geht der Trend ja nach fertigen Lösungen (QC) und fertigen Icons, aber bestimmt ist auch noch Bedarf und Interesse am Eigenbau. Meine Erkenntnisse möchte ich dehalb hier einmal zusammenfassen. Der Schwerpunkt liegt auf dem HS, aber erstellte "animated GIFs" sind natürlich auch anderweitig verwendbar. Vielleicht "moved" ja auch bei Euch demnächst in der Visu eine Pumpe, eine Lampe blinkt oder ein Kaminfeuer flackert ...


Grundsätzliches

Beim HS gibt es schon die "dynamischen Symbole", die abhängig von einem Kommunikationsobjekt den Zustand ändern. Also Symbole für "Lampe an" oder "Lampe aus". Technisch wird dann entweder das eine oder das andere (können auch viel mehr sein) Symbol im Client oder im Browser angezeigt, indem beim nächsten "Refresh" das entsprechende Symbol vom HS an die Anzeige ausgeliefert wird. Dort bleibt es statisch und unverändert, bis sich das Kommunikationsobjekt ändert und damit auch ein geändertes neues Grafiksymbol vom HS ausgeliefert wird.

Bei den animierten GIFs ist es etwas gänzlich anderes. Das Grafikformat "GIF" erlaubt es, mehrere Ansichten in einer Datei selbst abzuspeichern, die dann in zeitlicher Folge (z.B. alle 100ms das nächste Bild) angezeigt werden. Aktiviert man die "Loop-Eigenschaft", dann geht es immer wieder von vorne los (Endlosschleife). Für die korrekte Darstellung ist die Anzeigesoftware (z.B. Browser) zuständig, der "Bildlieferant" (hier der HS) bleibt dabei außen vor. Wenn der Browser nicht geschlossen wird, dann bewegt sich das GIF bis in alle Ewigkeit, auch wenn niemand mehr die Seite aktualisiert und der HS vielleicht doch wegen Netzteildefekt abgestürzt ist ...

Ob animierte GIFs auch im HS-Client funktionieren, kann ich leider nicht sagen, das habe ich mangels Bedarf nie ausprobiert.

Natürlich (und idealerweise) kann man "animierte GIFs" und "dynamische Symbole" auch kombinieren, wobei das dynamische Symbol (wie oben beschrieben) zuerst einmal auswählt, was überhaupt angezeigt wird: Wenn z.B. die Pumpe (oder das Feuer oder die Lampe ...) aus ist, dann zeigt man damit ein statisches Aus-Symbol an, dass z.B. nur aus einem "transparenten Nichts" besteht und deshalb unsichtbar ist. Ist die Pumpe an, dann wird das animierte GIF angezeigt. Das das Bild hierbei im Browser "zappelt", interessiert den HS nicht (kleine Einschränkung bzgl. Experte siehe unten), der liefert nur das GIF aus.


Was brauche ich

Zum Erstellen von animierten GIFs bracht man ein Programm, das aus einzelnen (statischen) Bildern die Animation zusammenbaut. Das ist vergleichbar mit der klassischen Methode der Trickfilmerstellung, immer ein Bild nach dem anderen hintereinanderfügen. Diese Programme gibt es in vielfältiger Form als Freeware im Internet. Eines der bekanntesten ist der "Microsoft GIF Animator", war mir aber schon zu mächtig und ich wollte mich nicht lange einarbeiten.

Ich habe das Programm UnFREEz genommen, ist ebenfalls Freeware und der Download (http://www.whitsoftdev.com/unfreez/) nur ca. 20KByte groß. Keine Installation, einfach nur die ZIP-Datei des Downloads auspacken und die eine EXE-Datei anstarten.

Einige Zeichenprogramme haben eine vergleichbare Funktion auch bereits integriert, dann erspart man sich das separate Programm.


Zum Erstellen der statischen Bilder benötigt man ein Zeichenprogramm nach eigener Wahl. Jeder wird schon irgendeine Erfahrung mit entsprechenden Programmen haben, sei es das mitgelieferte "Paint" von Windows oder Programme wie CorelDraw usw. Wichtig ist nur, dass man das Ergebnis (auch) als GIF speichern kann, aber das sollte jedes Programm können.

Ich empfehle hier ebenfalls ein Freeware-Programm und zwar "Paint.NET". Es hat nichts mit dem ähnlich klingenden Microsoft-Programm "Paint" zu tun. Man bekommt es unter http://www.getpaint.net/download.html zum Download, das Programm selbst ist (u.a.) komplett in Deutsch und benötigt als wesentliche Grundlage das ".NET Framwork" (kennen wir ja jetzt alle ...).
Wie jedes etwas mächtigere Programm muss man sich auch hier einarbeiten, das lohnt sich aber für alle, die ab und zu Symbole, Grafiken, Icons etc. erstellen oder bearbeiten wollen. Eine Superfunktion von Paint.NET ist das "Rückgängig-machen" einzelner Schritte mit einem Icon in der Menüleiste (oder mit Strg-Z). Man probiert etwas was, wenn es schief geht, dann einfach Strg-Z (ggf. mehrfach bis ganz oft) und es wird schrittweise wieder rückgängig gemacht.


Jetzt gehts los

Zuerst sollte man sich kurz Gedanken machen, was man denn überhaupt als Ergebnis möchte. Dann geht es an das Zeichenprogramm. Man beginnt entweder mit einer "ausgeliehenen" Vorlage, sprich nimmt eine frei verfügbare Grafik und bearbeitet diese, oder erstellt eine gänzlich neue, was im Falle einer "Pumpe" fast einfacher ist.
Generell sollte man sich die Arbeit in verschiedenen Ebenen angewöhnen, nur dann ist man beim Verändern und Nacharbeiten flexibel. Und "Transparenz" ist auch ein guter Freund, sonst bringt das ganze Ebenenkonzept nichts:





In obigem Bild habe ich in Paint.NET eine Datei mit mehreren Ebenen angelegt und im Moment die Ebenen 1 und 3 eingeblendet. Da die Ebene 3 "über" Ebene 1 steht, ist sie weiter im Vordergrund (kann man mit den blauen Pfeilen unten umsortieren). Diese Paint.NET-Datei (mit der Endung .pdn) bleibt immer als Mastergrafikdatei erhalten! Die einzelnen GIF-Dateien werden durch "Speichern unter" zusätzlich erstellt und sind sozusagen erst das Produkt der Masterdatei (wie beim Kompilieren von Programmen aus Quellcode). Es empfiehlt sich z.B. auch die Mastergrafik in höherer Auflösung anzulegen (z.B. doppelt in x- und y-Ausdehnung) und nur die GIF-Dateien beim Speichern in der Größe zu verringern. Verkleinern geht immer und unter guter Qualität (mit automatischen Halbtönen etc), beim späteren Vergrößern leidet die Qualität aber.


Meine "Pumpe" hat vier Flügel. Um eine "Pumpenumdrehung" zu machen, braucht man deshalb eigentlich nur eine Viertelumdrehung, dann sieht es wieder wie am Anfang aus. Deshalb habe ich auch nur drei verschiedene Zustände: Ausgangsbild, 30° weitergedreht und 60° weitergedreht. Bei 90° ist man wieder am Anfang. Man hätte auch mehr Zwischenschritte nehmen können (15°, 30°, 45°, ...), dann wird das Bild flüssiger, aber bei kleinen Bildgrößen macht das weniger Sinn.




Zum "Drehen" (was im obigen Bild schon geschehen ist), kopiert man zuerst die Bildebene mit dem Rotor in eine neue Ebene. Dann wird die Kopie selektiert und man kann die Kopie drehen, was hier über Ebenen -> Rotationszoom geht.
Wichtig ist, dass bei Paint.NET immer nur die markierte Ebene bearbeitet wird. Da geht schon mal was schief, da man nicht darauf achtet, aber Strg-Z hilft ...




Sinngemäß geht man mit den weiteren Ebenen vor, bis man die gewünschte "Trickfilmbasis" erstellt hat.

Die Veränderung von Bild zu Bild muss natürlich immer mit den geeigneten Werkzeugen durchgeführt werden, drehende Elemente sind halt besonders einfach, wenn sie mittig im Bild angeordnet sind.

Wenn man z.B. blinkende Lampen animiert, dann würde man eine Kopie der Lampen-Ebene machen und einfach die Kopie anders einfärben.


Als letzten Schritt im Grafikprogramm werden die einzelnen Ebenen, die jeweils in der Einzel-GIF-Datei sein sollen, markiert und die Datei mit "Speichern unter" -> "als GIF-Datei" gespeichert. Beim Speichern wird dann nachgefragt, ob man "die Ebenen zusammenfassen" möchte, denn die Ebenenfunktion des Paint.NET-Formats pdn wird im GIF nicht unterstützt. Die richtige Antwort ist hier "ja", dann wird gespeichert und alle nicht aktivierten Ebenen sind verschwunden! Oh Schreck! Macht aber nichts, denn jetzt kommt einfach "Strg-Z" für "Rückgängig" (siehe oben), dann ist das Zusammenfassen wieder rückgängig, die GIF-Datei aber trotzdem noch da. Und die Original-pdn-Datei hat man ja auch noch gespeichert, muss diese aber nicht extra nochmal öffnen.

Dieses Spiel treibt man mit allen Ansichten und hat als Ergebnis mehrere einzelne ("stehende") GIF-Dateien. Eine überlegte Namensgebung wird spätestens hier übrigens sehr sinnvoll.

Als Ergebnis der obigen Bemühungen habe ich mal zwei Sätze "Pumpen" gemacht:





Jetzt kommt UnFREEz zum Einsatz. Dieses (einfache) Programm hat kaum Einstellmöglichkeiten, ist aber auch sehr einfach zu bedienen.



Per Drag und Drop "wirft" man die GIF-Dateien, die Teil der Bewegung sein sollen einfach auf das gestartete Programmfenster. Unter "Loop animation" legt man fest, ob das Spiel endlos weitergehen soll (überlicherweise ja) oder nur einen Durchlauf lang. Unter "Frame Delay" legt man die Zeit fest, die bis zum Wechsel auf die nächste Ansicht vergehen soll. "30cs" währen hier 0,3 Sekunden, die Skalierung ist etwas gewöhnungsbedürftig.
Am Ende "Make Animated GIF" klicken und den Dateinamen für das neue "animated GIF" festlegen.
Zum Testen sollte man die fertige Datei in einem Browser öffnen (einfach wieder mit "Drag und Drop" in den Browser werfen). Jetzt entscheidet sich, ob die Zeiteinstellung verändert werden muss oder ggf. sogar noch weitere Zwischengrafiken sinnvoll sind.



Kleiner Tipp für Elektriker: Wenn sich die Pumpe aus drei Einzel-GIFs "falschherum" dreht, dann ist das wie bei einem Drehstrommotor: Einfach zwei Phasen (also hier Bilder) in der Reihenfolge tauschen.


Einbau der animierten GIFs in die HS-Visu

Was mach ich jetzt mit den animierten GIFs ?
Einfach verwenden, wie statische. Im Experten werden diese zuerst als "Statische Symbole" eingefügt, dann mehrere der eingefügten Symbole zu einem "Dynamischen Symbol" zusammengefügt. Im Prinzip ist es das bekannte Spiel.

Eine Besonderheit liegt aber in der Designmaske des Experten, der (zumindest bei mir, Experte 2.2) Schwierigkeiten mit der Anzeige der animierten GIFs hat. Das macht das Positionieren auf einer Visuseite schwierig (hat aber keinerlei Auswirkung auf die Visu), deshalb der folgende Tipp:

Ich empfehle, ein statisches GIF (eines, aus denen das animierte zusammengefügt wurde) zusätzlich in den HS zu importieren und als Standard-Symbol einzutragen. In den Bedingungsfeldern stehen die GIFs, die im Betrieb verwendet werden, das statische "Standard-Symbol" wird praktisch nur im Experten verwendet und macht dort keine (Positionierungs-)Probleme.




Zum Schluß zwei Bilder meines Ergebnisses. Bei der ipod-Visu ist die Auflösung der "Pumpen" nur 22x22, also halb so groß wie im obigen Beispiel. Trotzdem ist der Effekt sehr schön zu sehen (leider nicht im Screen-Shot), doch wie überall sollte man "sparsam" damit sein, sonst wird es im eigentlichen Sinne des Wortes zu bunt.




Ich mache noch einen Diskussionsthread auf, sollte es Fragen oder Anmerkungen zum Thema geben.


Gruß
Hartmut
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist an.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
OpenWRT - EIBD - Linknx - PHP jef2000 KNX EIB Forum 316 31.03.2013 19:08
Wünsche & Anregungen für den HS/FS - Experten oliverh KNX EIB Forum 129 03.01.2013 14:21
[HS/FS] - √ - Recalling a list from within the Visu Warichet KNX EIB Forum 29 28.12.2008 16:34
Best method to have an up-to-date Visu ? Warichet KNX EIB Forum 6 27.12.2007 19:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:17 Uhr.



SEO by vBSEO