Kontakt & Impressum
Diese Seite ist komplett werbefrei und deshalb auf Ihre Spende angewiesen.
Diese Seite ist komplett werbefrei und deshalb auf Ihre Spende angewiesen.

qtkrparse.php QTVR-Dateien für KRPano

Bild: qtkrparse.php

aktuelle Version: 3.0.2


Zweck

qtkrparse.php hat zwei Funktionen: Der erste Teil liest aus einer Quicktime VR Datei die Parameter und Dateioffsets der Bilddaten und erzeugt daraus eine XML-Datei, eine Datei mit der Zugriffsinformation und ein Vorschaubild. Der zweite Teil lädt mit Hilfe dieser Information und der krpano-Nummerierung der Kacheln die Bilddaten direkt aus der QTVR-Datei in den KRPano-Player.


Vorbedingungen

Außer den Bedingungen für KRPano muß der Server PHP-Skripte ausführen können. qtkrparse.php muß im gleichen Verzeichnis wie die QTVR-Datei(en) liegen (es ist möglich, qtkrparse.php per mod_rewrite einzublenden). In diesem Verzeichnis muß PHP Schreibrechte haben.

krpano muß mindestens in Version 1.1.8 vorliegen.

In QTVR-Dateien sind nur Jpeg-komprimierte Bilder erlaubt, Headerkompression wird nicht unterstützt. qtkrparse gibt via krpano entsprechende Fehlermeldungen aus, wenn eine solche Datei vorliegt.


Anwendung

qtkrparse.php wird mit der QTVR-Datei als GET-Parameter "mov" statt der XML-Datei an embedpano übergeben:

<script src="/krpano.js"></script>
<script>
  embedpano({swf:"krpano.swf",
             xml:"qtkrparse.php?mov=mein.mov",
             target:"krpano-div-id",
             html5:"auto"});
</script>

Details zum Einbetten von krpano siehe http://www.krpano.com/docu/html/

Die Flash-Version kann auch direkt per GET-Parameter aufgerufen werden:

krpano.swf?pano=qtkrparse.php%3Fmov=mein.mov
Das zweite "?" muss als "%3F" maskiert werden.


Details

  • qtkrparse.php benutzt einen großen Teil des Codes von qtparser.php von Aldo Hoeben: http://fieldofview.com
  • qtkrparse.php bindet generell eine evtl. vorhandene Datei krpano.inc ein, die zusätzlichen XML-Code enthalten kann. qtkrparse.php erzeugt mit <krpano> und optionalem <preview>-tag nur das äußere Gerüst und das <view>- und <image>-tag (mit untergeordnetem <level>-tag), so daß alle anderen tags mit Hilfe dieser Datei eingebunden werden müssen.
  • Die folgenden <view>-attribute werden aus der QTVR-Datei gelesen: hlookat, vlookat, fov, fovmin, fovmax, hlookatmin, hlookatmax, vlookatmin undvlookatmax
  • Die folgenden <view>-attribute werden in qtkrparse.php vorbelegt: fisheye="0", fisheyefovlink="0.5", limitfov="true", camroll="0.0"
  • limitview wird entsprechend der min- und max-attribute gesetzt: Wenn hlookatmin - hlookatmax = 360° und vlookatmin - vlookatmax = 180° (also die gesamte Sphäre sichtbar ist) mit "lookat", sonst mit "range".
  • Alle diese <view>-Attribute können mittels Parameter im Javascript-code überschrieben werden, z.B. um in den Genuß der Fisheye-Funktion von krpano zu kommen:
      var so = document.getElementById("krpanoSWFObject");
      so.set("view.fisheye","0.35");
      so.set("view.fovmax","179");
    
  • qtkrparse.php schreibt beim ersten Aufruf zwei oder drei Dateien in das Verzeichnis in dem die QTVR-Datei liegt. Eine mit der Endung .xml, eine mit der Endung .ofs und ein optionales .jpg Vorschaubild. Die Namen aller Dateien werden aus Namen und Endung der QTVR-Datei konstruiert. Aus mein.mov wird z.B. mein_mov_kr.xml, mein_mov_kr.ofs.und mein_mov_prv.jpg. Bei allen folgenden Aufrufen werden diese Dateien nur noch gelesen, es sei denn ihr Dateidatum ist älter als das der QTVR-Datei oder von qtkrparse.php. In diesem Falle werden die Dateien auch erzeugt. Das läßt sich auch mit dem Parameter cache=reset erzwingen, z.B.
    qtkrparse?mov=mein.mov&cache=reset
  • Wenn relative Pfade benutzt werden sollen (z.B. um eine einzelne Kopie von krpano für mehrere Verzeichnisse zu benutzen) muß das im Aufruf von qtkrparse.php geschehen, nicht in der URL der QTVR-Datei:
      embedpano({swf:"krpano.swf",
                 xml:"../meinpfad/qtkrparse.php?mov=mein.mov",
                 target:"krpano-div-id",
                 html5:"auto"});
          
  • Die Erzeugung und Verwendung von Vorschaubildern kann in qtkrparse.php abgeschaltet werden, indem man die Variable = false; setzt.
  • Vorschaubilder werden erst beim zweiten Laden des Panoramas angezeigt.


Versionsgeschichte

v1.0: 12.6.2008
- erste öffentliche Version
v1.1: 22.6.2008
- "Expires" und "Last-Modified" header gesetzt um caching zu ermöglichen
v1.2: 24.7.2008
- kompatible mit den neuesten php versionen
v2.0: 18.8.2008
- benutzt das QTVR Vorschaubild (falls vorhanden).
- Der interne Fehler-Mechanismus berücksichtigt jetzt die aktuelle Einstellung von error_reporting
v2.0.1: 9.9.2008
- bugfix: apache_request_headers erzeugte Fehler wenn nicht existent.
v2.1: 14.9.2008
- Unterteilung der Würfelflächen (subtiling) wird jetzt auch für eine gerade Anzahl pro Seite unterstützt (2x2, 4x4, 6x6...)
v3.0: 11.11.2016
- Unterstützung für krpano HTML5 viewer (und damit für tablets und smartphones)
v3.0.1: 12.11.2016
- Kontextmenü mit krpano Projektionen hinzugefügt (in krpano.inc)
v3.0.2: 22.08.2017
- PHP 7 kompatibel


Beispiele / Debugging

Alle Kugelpanoramen auf http://pano.erik-krause.de werden mit Hilfe von qtkrparse dargestellt. Die Aufrufe sind allerdings hinter ein paar Rewrite-Regeln versteckt. Man kann die Panoramen aber auch manuell aufrufen:

Diese Art des Aufrufs kann u.a. verwendet werden, um herauszufinden, warum ein Panorama nicht lädt.


HTML-Konverter

Um bestehende HTML-Seiten die QTVR einbinden nicht neu erstellen zu müssen, liegt convert2.php bei (ursprünglich aus dem Birdcap-Paket von Bernhard Vogl). Um eine bestehende Seite zu für krpano zu ändern wird sie in einem link an convert2.php als Parameter übergeben, z.B.:

<a href="convert2.php?file=panorama.html">interaktives Panorama</a>
convert2.php ersetzt das <object> und <embed> tag von Quicktime durch einen entsprechenden Aufruf von embedpano.


.htaccess Beispiele

Wenn die .htm-Dateien mit QTVR Panoramen mittels eines bestimmten Musters erkennbar sind, kann die Arbeit von wenigen Umleitungsregeln erledigt werde.

  # Umleitung einschalten
RewriteEngine on
  # angenommen der Ordner, der krpano, qtkrparse.php und convert2.php enthält ist /tools
  # alle Aufrufe von convert2.php nach /tools umleiten
RewriteRule (^|/)convert2\.php$ tools/convert2.php [L]
  # alle Aufrufe von qtkrparse.php nach /tools umleiten
RewriteRule (^|/)qtkrparse\.php(.*)$ tools/qtkrparse.php$2 [L]
  # alle Aufrufe von krpano nach /tools umleiten
RewriteRule (^|/)krpano\.(.*)$ tools/krpano.$2 [L]
  # angenommen alle htm-Dateien mit QTVR Panoramen können mit *_qt.htm gefunden werden
  # convert2.php mit dem Dateinamen als Parameter aufrufen
RewriteRule ^(.*)/([^./]+_qt)\.htm$ /$1/convert2.php?file=$2.htm [L]


Download

Fragen, Anregungen, Kommentare und Korrekturen bitte an mich

Download qtkrparse.zip


© Erik Krause 2008 - 2018 Alle Bilder auf diesen Seiten unterliegen dem Urheberrecht. Verwendung, gleich zu welchem Zweck (auch privat!), nur mit schriftlicher Genehmigung des Autors!

Kontakt & Impressum

Erik Krause
Herchersgarten 1
D-79249 Merzhausen
e-Mail: Erik Krause

Datenschutz

Diese Seite erfasst keine Daten
Die Ip-Adresse in den Server-logs wird anonymisiert.