Matthew Petroff 6fd8a09710 | 5 år sedan | |
---|---|---|
.. | ||
Dockerfile | 5 år sedan | |
generate.py | 5 år sedan | |
readme.md | 5 år sedan |
If you don’t have your own, it’s easy to use one of the examples in the repository. From this directory, run:
$ cp ../../examples/examplepano.jpg .
To use the generate.py
script, either its dependencies need to be installed,
or Docker can be used to avoid this installation.
The generate.py
script depends on nona
(from Hugin),
as well as Python with the Pillow package. On Ubuntu,
these dependencies can be installed by running:
$ sudo apt install python3 python3-pil hugin-tools
Once the dependencies are installed, a tileset can generated with:
$ python3 generate.py examplepano.jpg
Processing input image information...
Assuming --haov 360.0
Assuming --vaov 180.0
Generating cube faces...
Generating tiles...
Generating fallback tiles...
A small Dockerfile is provided that allows one to easily generate a panorama tileset with the generate.py script, without needing to install dependencies on one’s host.
First, build the Docker container:
$ docker build -t generate-panorama .
When it’s finished, you can bind the present working directory to a location in
the container (/data
) so that your image is found in the container. Notice
that the output needs to be specified in a directory that is bound to the host:
$ docker run -it -v $PWD:/data generate-panorama --output /data/output /data/examplepano.jpg
Processing input image information...
Assuming --haov 360.0
Assuming --vaov 180.0
Generating cube faces...
Generating tiles...
Generating fallback tiles...
The final output will be in your present working directory:
$ ls output/
1 2 3 config.json fallback
Next, change back to the root and start a server:
$ cd ../..
$ python3 -m http.server
A generated tileset and configuration in utils/multires/output
can then be viewed by navigating a browser to:
http://localhost:8000/src/standalone/pannellum.htm?config=../../utils/multires/output/config.json
When the page is loaded, the console will output a logging stream corresponding to the HTTP requests:
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/standalone/pannellum.htm?config=../../utils/multires/output/config.json HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/css/pannellum.css HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/standalone/standalone.css HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/js/libpannellum.js HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/js/pannellum.js HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/standalone/standalone.js HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /utils/multires/output/config.json HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/css/img/background.svg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/css/img/sprites.svg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:24] "GET /src/css/img/compass.svg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:26] "GET /src/css/img/grab.svg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:27] "GET /utils/multires/output//1/r0_0.jpg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:27] "GET /utils/multires/output//1/f0_0.jpg HTTP/1.1" 200 -
127.0.0.1 - - [09/Aug/2019 09:41:27] "GET /utils/multires/output//1/u0_0.jpg HTTP/1.1" 200 -
...
The panorama, in multi-resolution format, should display in the browser.