PTViewer 2.8 version history
- The quality parameter can now be set to a value of 4 to activate a Lanczos2 interpolator.
This interpolator generates sharper images but is much slower, so it is used
only when the user is not panning. When the user is panning PTViewer uses
bilinear interpolation. This value is now the default. The quality advantage
of the Lanczos2 interpolator is greater as you zoom into the image.
- Panning has been speeded up (only with bilinear interpolator: the nearest neighbor
interpolator has not changed since it's really low-quality).
- Fixed: the mouse cursor did not change to HAND when over a hotspot and using the Sun VM.
- Fixed: pressing the spacebar did not show hotspots until the pano was dragged.
- Fixed: a custom mouse cursor did not show up until the mouse was moved.
- Using the previous versions, when panning very slowly the borders of the
image moved in a jerky way. This was easier to notice when using a big
window on a fast computer. With this version the movement is smooth.
- Panning with the keyboard and zooming is now faster (thanks to Vladimir Šimunić).
- With the Sun Java VM version 1.4 or later, ptviewer can now draw to the
screen using hardware acceleration. As a result, on a Windows computer it is
now as fast with the Sun VM as with the Microsoft one.
- Added new parameter "dynLoadROIs" (default = false). If set to
true ptviewer dynamically loads a panorama sliced as ROIs depending on the current view direction.
I had to modify the "roi" parameter too. Click
here for more information.
- Fixed: when diplaying a wait image with the Sun VM the background of the applet
was not set to the color specified by the bgcolor parameter.
- Previous 2.7L2 versions did not work with cubic QuickTime VR images. I
have modified the ptzoom extension and now the applet works, but cubic QTVR
images cannot use the Lanczos2 interpolator yet. They are rendered with the
bilinear interpolator instead.
- Added new parameter "hsEnableVisibleOnly" (default = false). If set to true hotspots will be disabled
if not visible. I didn't like casually jumping to another pano while panning
with the hotspots set to invisible.
- Now the big applet can work as a standalone program too. The previous
version did not work because the structure of the jar file was not correct
for a standalone application.
- Fixed: with the beta4 version, under certain circumstances, text hotspots
did not use the color specified by the bgcolor parameter.
- Added new parameter "showToolbar" (default = false). If set to
true ptviewer shows an integrated toolbar with three buttons: zoom in, zoom
out, toggle hotspots. The toolbar works as a progress bar too: this progress
bar also shows the ROIs loading if the dynLoadROIs parameter is set to true.
You can look at the dynLoadROIs example. The
toggle hotspots button changes its appearance when the hotspots are
activated, so users can know if hotspots are active or not.
- Added new parameter "imgLoadFeedback" (default = true). If set
to false ptviewer will not show neither a progress bar nor a progress
percent number. This is mainly useful when using the toolbar that already
shows its own progress bar.
- Added new parameter "toolbarImage". It is only meaningful if
showToolbar is true and can be used to customize the toolbar's appearance.
You can click here for more information.
- Fixed: if the panoramic image was not fully spherical, i.e. the tilt angle
did not go from -90° to + 90°, hotspots were displayed at a wrong y
- Fixed some bugs with the toolbar.
- Speeded up the loading of ROIs when using the "dynLoadROIs=true"
parameter. In previous versions the applet painted itself too often slowing
down the loading process a lot.
- Fixed: with the beta6 version it was very difficult to pan while
dynamically loading ROIs.
- Fixed: the viewer did not work when using together a wait image and the
- Modified the gotoView() and moveTo() commands: now if the requested
vertical field of view is too large for the current pano, it is
automatically reduced. In previous versions the viewer did not change the
direction of view.
- If the tilt parameters requests an impossible direction of view (outside the
pano) now the the tilt angle is set to the maximum or minimum possible value.
set it to 0.
- Now, when using the integrated toolbar, the hotspots' description is
written in the toolbar too: it should be more easily found by users.
- Added new parameter "autoTime". It is used only if the parameter
"auto" has been used to cause autorotation. The value of the
"autoTime" parameter is the number of seconds needed to perform a
full 360° rotation, so <param name="autoTime" value=120>
will cause PTViewer to make a full rotation in two minutes. Of course if the
computer is not fast enough PTViewer will not be able to rotate fast enough.
This parameter can be used to make the viewer rotate at the same speed on
every computer: on faster computers the CPU usage will be lower than 100%.
The value must be an integer number, without decimals.
- Added a new function "startAutoPan( pan_inc, tilt_inc, zoom, autoTime
)" that can be used to start autopanning with a given value for
- Now the toolbar is painted before static hotspots, so it is possible to
set static hotspots on the toolbar to create more buttons.
- Added new parameter "toolbarDescr_x". The value must be an
integer number and it can be used to change the x coordinate where the
hotspots' description is written on the toolbar. It is useful if you have
added new buttons to the right of the standard ones.
- Added new parameter "toolbarDescr_color" to set the color of the
in the toolbar. The parameter must be set to a hex value like other PTViewer
parameters used to set colors. The default is black. This value is overridden by the "c" parameter in the hotspot's definition (if any).
ending with ";" does not cause an exception any more. The
";" is used as a separator between multiple commands.
- Added new parameter "shsEnableVisibleOnly" (default = false). If set to true
static hotspots will be disabled
if not visible. This parameter is similar to "hsEnableVisibleOnly"
that works for hotspots.
- Fixed: when loading new panos with newPanoFromList() the toolbar did reset its
properties (text color and position) to the default. Now it keeps the values
set with <param> tags.
- Fixed: when loading new panos with newPanoFromList() from a hotspot the hotspot button of the toolbar went out of sync.
- Fixed: when using the toolbar and the parameter "view_height" the toolbar moved up each time that a pano was loaded with
- Changed: now the tiltmax parameter accepts negative values and the tiltmin parameter
accepts positive ones.
- Added two public methods: getPanoIsLoaded() and getFilename(). You can
getPanoIsLoaded() returns a boolean value: true if the pano has already been
loaded, false otherwise. getFilename() return a string: the file name of the
- Added new parameter "popup_panning" (default = false). If set to
true hotspots will pop up under the mouse when the user is panning with the
mouse. This parameter was originally added by David Buxo to his version of PTViewer.
- Fixed: using the "dynLoadROIs"
parameter with certain image sizes caused great shifts between the low
resolution preview and the high resolution image.
- Tore Meyer (Tore.Meyer at gmx.de) added an optional parameter "autoTime" to moveTo() and
public void moveTo(double pan, double tilt, double fov, int nframes, double
public void moveFromTo(double d, double d1, double d2, double d3, double d4, double d5, int i, double
The behaviour is identical to the original moveTo() & moveFromTo() Functions with the autoTime behaving just like the
autoTime parameter introduced in version 2.7L2.
- Redesigned the rendering engine to make it faster and more accurate. Now
it is possible to use larger windows and the viewer does not show strange
image movements when zooming in and panning slowly.
- Changed the meaning of the "quality" parameter. Now 4
means nearest neighbor when panning, Lanczos 2 when steady. Please note that
this is a breaking change, but since 4 was the
default there was no real need to specify it in the html code. I made the
change to be consistent with the older values of the parameter: higher
values mean higher quality.
- Added new values to the "quality" parameter: 5 means
bilinear when panning and Lanczos2 when steady, 6 means nearest neighbor
when panning quickly, bilinear when panning slowly and Lanczos2 when steady.
Nearest neighbor when panning is the fastest option, but it causes a lot of
artifacts (shimmering) while panning slowly. Bilinear greatly reduces
artifacts but it is slower. Quality = 6 tries to achieve a balance between
quality and speed: when panning slowly artifacts are more noticeable and
speed is less important, while when panning quickly artifacts are less
visible and speed is more important. Quality = 6 is now the default.
- Rik Littlefield (rj.littlefield at computer.org) has rewritten the image loading code: now it is much faster,
especially with larger images. As a consequence the "maxarray"
parameter is no longer used by the applet. Using maxarray will not cause errors, but it will
- Now dynamic loading of ROIs is faster. This is more noticeable once the images are cached in the local
- Fixed: when using nn interpolator rectangular hotspots were not painted correctly while panning.
- Added new parameter "mouseSensitivity", it is a decimal
number (the decimal separator must be a period, not a comma), default = 1. If mouseSensitivity < 1 panning will be slower, if mouseSensitivity > 1 panning will be faster.
- Added new parameter "mouseQ6Threshold" used only if quality=6. It is a decimal number, default = 1.
mouseQ6Threshold > 1 will require a larger mouse movement to switch from bilinear to nn, mouseQ6Threshold < 1 will require a smaller mouse movement to switch from bilinear to nn.
- Fixed: when loading a pano that was not tall enough to fit in the current window
using the current fov ptviewer reduced too much the fov value. Now fov is reduced to the correct value that will not require vertical panning.
- Added support for dynamic progressive download using custom *.ptv
and *.ptvref files. Click here for
more information. A program for the custom file creation is available from
here. Eric Gerds has created a Photoshop
CS script for the custom file creation: it also works with Macs. Three sample images are available from
- Added new parameter "outOfMemoryURL": it is the address
of a page to be opened in case of out of memory error while loading the panoramic
image. Click here for information about showing
large panoramic images.
- Some web servers (like IIS 6) by default do not serve files with unknown extensions, but they send a "file not
found" error. To bypass this problem .ptv and .ptvref files can be renamed as follows:
pano.ptvref ==> pano.ptvref.txt
pano.ptv ==> pano.ptv.jpg
the trailing extensions do not need to be "txt" or "jpg" but they can be any extension known by the server.
- Added parameter "mousePanTime" used to limit the maximum speed when panning with the mouse. It works like "autoTime": it is the minimum time (in seconds)
for a full 360 degrees revolution. Inexperienced users tend to drag too
much the mouse so the image rotates too fast, causing confusion: this parameter
limits the maximum panning speed and it works with any cpu speed. You can
use decimal values, the decimal separator must be a period ("."),
not a comma (",").
- Fixed: the applet did not load images (like a wait screen) if they were packed in the jar file.
a new functionality that allows multiple static hotspots to be drawn, hidden and popped up at
once. DrawSHSImage(), DrawSHSPopup() and HideSHSImage() now allow more than one static hotspot to be changed in a single call. The commands are now able to accept static hotspot ranges e.g. 1-4 or 1,3,5,6 or combinations of both 1-4,7,8.
- Robert also added a new parameter "shsStopAutoPanOnClick",
by default it is set to true. When you set it to false, clicking on a static hotspot will not stop an
- These new features make it possible to create dynamic menus for PTViewer
using nothing but static hotspots. Robert has written a tutorial
about dynamic menu creation.
- Added support for .ptv files encryption: files are encrypted with a domain
name, so PTViewer will only show them if they are downloaded from that
domain. Click here for
- Ercan Gigi (ercan.gigi at philips.com) added the "autoNumTurns" parameter which is used
to limit the number of full 360 degree turns when auto-panning is on. You
can use decimal numbers. The parameter is useful if you want to give only a
short autopan preview.
- Fixed a problem with encrypted files: some of them could not be seen with
Linux or Mac computers.
- Now it is possible to press the "Y" key to zoom out, just like
the "Z" key. This feature is useful for certain keyboard layouts.
- Fixed: when autopanning and quality=6, moving the mouse over the viewer caused
the interpolator to switch to nearest neighbour reducing image quality (a
lot of "shimmering" effect).
- Added new parameter "horizonPosition" (integer, no
decimals) to specify the position of the horizon if it is not in the middle of the pano image.
Without this parameter PTViewer would show a curved horizon. The parameter
is a % value of the image height, measured from the top. The default value
is 50 and the horizon is considered to be in the middle of the image. If the
value is less than 50 the horizon is nearer to the top of the image, if it
is greater than 50 the horizon is nearer to the bottom of the image. For
example, if you have a pano 1150 pixels high and the horizon is 430 pixels
from the top then the parameter value is 430/1150*100 = 37.
- Pressing "o" will interactively decrease the value of the horizonPosition parameter with feedback in the status bar,
pressing "O" will increase it. This is useful to quickly find the correct value for the parameter. Hotspots position will not be updated since it would require more work and this feature is not intended for production use.
- Added parameter "authoringMode" (default = false). If set to true it will enable
authoring features that could have unexpected results for end users. At the moment it will
only enable the "o" key (see above).
- Added parameter "toolbarBoldText", default=false. If set to true the hotspots description in the
toolbar will be written in bold
- Added parameter "statusMessage": it can be used to specify a fixed text to be written in the status bar. The text is written
every time the user drags the mouse or presses an arrow key.
This parameter does not work with Firefox (for security reasons).
- Added parameter "hsShowDescrInStatusBar" (default = true). If set to false
the applet will not show the hotspots' description in the browser's status bar when the mouse moves over a hotspot.
- Changed default mouse sensitivity because panning was too fast with modern computers.
- Added new features in static hotspots declaration: "y" and "b" values can be
negative. If negative they are computed from the bottom of the viewer window and not from the top.
"x" and "a" values can be negative: if negative they are computed from the right
of the viewer window and not from the left.
"x" must compute to a positive number lower than "a".
"y" must compute to a positive number lower than "b".
- Fixed: parameters specified in a "pano0", "pano1" (and
so on) tag were case-sensitive, while normal parameters were
case-insensitive. Now those parameters are case-insensitive too.
- Now, when decoding encrypted ptv files, PTViewer uses the address of the
web page instead of the address of the applet. This should prevent image
stealing, i.e. a web page that references both a pano image and a PTViewer
applet in another site being able to show it.
PTViewer home page