Back    Français  English 
Stereoscopic pictures gallery
logo

piphoto3D piphoto3D

A simple and multiplatform 3D pictures viewer.

Display your 3D pictures from your Raspberry Pi or other computer using various 3D modes
  Pictures must be in side-by-side format (either parallel or crossed-eye) full width in jpg or jps files.
The application is multiplateform, and will run on Windows, Linux, Raspberry Pi,...
It's a command line application with a set of simple parameters to control it.
3D images can be displayed in parallel, crossed-eye, half-format for 3DTV, anaglyph, interlaced and 2D too.
The 3D mode can be changed at any time and the stereoscopic window can also be adjsted.
Simple slideshows can be used with an index file that will indicate the picture ordre and contain comments for each picture.
/ / + : piphoto3D runs on any computer having a recent Java runtime installed.
Installation: Download the "jar" file below and copy it in a folder of your choice. The application will need a Java 6 (or better) Java runtime installed on the computer.
 
Click here to download piphoto3D v1.5.5 (146 KB)
Help file: piphoto3D_usage_en.txt
 

Supported 3D modes

   - Side-by-side: the left and right images of the stereoscopic pair are placed side by side.
   - Side-by-side ½ width: the left and right images of the stereoscopic pair are placed side by side but are horizontally compressed by half. This mode is compatible with 3D TV HDMI 1.4.
   - Top-and-bottom ½ height: the left and right images of the stereoscopic pair are placed on top of each other but are vertically compressed by half. This mode is compatible with 3D TV HDMI 1.4.
   - Anaglyph Red-Cyan: to be used with anaglyph glasses with red-cyan lenses.
   - Anaglyph Yellow-Blue: to be used with anaglyph glasses with yellow-blue lenses.
   - Anaglyph Green-Magenta: to be used with anaglyph glasses with green-magenta lenses.
   - Horizontally interlaced: the two images are interlaced row by row.
   - Vertically interlaced: the two images are interlaced column by column.
   - 2D: only one side of the 3D picture is displayed.
Note: If you want to display in parallel or crossed-eye mode or if the 3D effect appears to be reversed, press the "X" key on the keyboard.

How to start

Check that a Java runtile is available with the "java -version" command:
For instance under Windows:
D:\workspace\piphoto3d>java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)

or with Linux :
pi@raspberrypi4:~ $ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Raspbian-3deb10u1)
OpenJDK Server VM (build 11.0.7+10-post-Raspbian-3deb10u1, mixed mode)

Displaying the 3D images of a folder.
java -jar /home/pi/java-pi/piphoto3d.jar -folder=?

Note: replace /home/pi/java-pi/ with the path to the folder where the application has been downloaded.
The application starts and displays a windows allowing to select the folder where the 3D pictures are located.
Select the folder and click the Open button, the first image will be displayed full-screen in half-width side-by-side mode (suitable for 3DTV).
To select another 3D mode, press the "M" key.
To display the next picture, press the space bar or the right arrow key or click on the right part of the image.
To display the pictures in automatic slideshow mode, press the "A" key.
To exit the application, press the "Esc" key.

Other examples.
- Start an automatic slideshow playing all the 3D pictures located in the "/home/pi/Images/3D/" folder:
java -jar /home/pi/java-pi/piphoto3d.jar -folder=/home/pi/Images/3D/ -a
- Index the 3D pictures located in the "/home/pi/Images/3D/" folder (and its subfolders) and create index files for each folder:
java -jar /home/pi/java-pi/piphoto3d.jar -buildalbums=/home/pi/Images/3D/
- Show a menu displaying the available albums found in the "/home/pi/Images/3D/" folder (indexed by the previous step):
java -jar /home/pi/java-pi/piphoto3d.jar -albums=/home/pi/Images/3D/


Application parameters

-img=<picture_file>Display just the specified picture (use -img=? to browse for the file).
-folder=<image_folder>Load all images from specified folder (use -folder=? to use a browse for folder dialog).
-index=<xml_index_file>Load images and description from the specified xml index file (use -index=? to browse for the file).
-albums=<folder>Look for photo albums in the specified folder and its subfolders and display the list to select one (use -albums=? to browse for the folder).
-buildalbums=<folder>Look for pictures in the specified folder and its subfolders and build or update the index files (use -buildalbums=? to browse for the folder).
-screen=<i[,j]>Display the pictures on screen #i (first screen is 0) or on screen #i and #j.
-m=<3D_mode>Use specified 3D mode:
    0: Side-by-side full-width,
    1: Side-by-side half-width,
    2: Top-and-Bottom half-height,
    3: Red-Cyan Dubois anaglyph,
    4: Yellow-Blue Dubois anaglyph,
    5: Green-Magenta Dubois anaglyph,
    6: Horizontally interlaced,
    7: Vertically interlaced,
    8: 2D (left or right image only).
-xTreat the 3D pictures as crossed-eye rather than parallel.
-aStart an automatic slideshow.
-rRandom slideshow (default is sequential slideshow).
-d=<delay>Delay between pictures in seconds for the automatic slideshow (default is 5 seconds).
-b=<background_color>Color of the background (hexadecimal notation, default is dark gray 404040).
-tDisplay the picture title (top-centered).
-t=<l|c|r|L|C|R>Display the picture title at the specified position.
-p=fldDcgiIMmDisplay the picture title with the following information: 'f'ilename, 'l'ocation, 'd'ate and time, 'D'ate, 'c'omment, 'g'ps coordinates, 'i'mage number, 'I'mage number/image count, 'M'onth and year, short 'm'onth and year (default=ldc).
-c=<text_color>Color of the picture title (hexadecimal notation, default is yellow).
-f=<font,size>Font to use for the picture title.
-fm=<font,size>Font to use for the menu.
-menu=<colums,rows>Number of rows and columns for the menu (default: 5,6).
-z=<position>Depth position of the picture title (modes 0, 1 and 2).
-sw=<position>Correction of the stereo window position (modes 0, 1, 2 and 6. Press Shift + L / R arrows to increase / decrease).
-w=<w|f|x>Display mode: 'w': Use a windowed display, 'f': use a full-screen display (default on Windows), 'x': use a exclusive full-screen display (default on Linux).
-q=<quality>If 1, use resampling, if 0, use faster image scaling (Default=1 if more than 2 processors, otherwise 0).
-F=<filter>Force usage of the specified resize filter.
-v=<verbose_level>Amount of messages displayed in the terminal (no messages: 0, default: 1).

Commands during slideshow

Esc or qExit application (or go back to the albums menu).
a or ':'Start or pause automatic slideshow.
Right Arrow or Space Bar
Click on the right of the image
Display next picture.
Left Arrow
Click on the left of the image
Display previous picture.
Next / Prev. PgAdvance / go back by 10 images (in Presenter mode by 1 image).
Shift + Next / Prev. PgAdvance / go back by 50 images.
Shift + Left or Right ArrowChange the position od the stereoscopic window.
Ctrl + Left or Right ArrowChange the depth position of the picture title.
Shift + HomeReset the position of the stereoscopic window (on the screen) and the picture title.
xTranspose left <--> right.
cShow/Hide picture title.
CChange the position of the picture title.
rChange between sequential and random mode.
mCycle through the various 3D display modes (M to go backwards).
fCycle through the various resizing modes (F to go backwards).
QToggle quality on/off.
dDisplay the picture list.
pToggle the Presenter mode.
F5While in the menu, start the selected album.
F7Open a dialog box for editing the picture information.
Ctrl+kStore the comment position with the current picture (Ctrl+Sh+k: to cancel).
Ctrl+sSave the current album.
Ctrl+gOpen the location in Google Maps.
Shift+Ctrl+gOpen the location in OpenStreetMap.
hDisplay the help page.

Making picture albums

piphoto3D was written to allow easy viewing of a set of 3D pictures from a Raspberry Pi.
Pictures are organised in thematic folders with an index filefor each folder. Using index files gives more control:
   - The pictures order can be specified by the user,
   - Information can be added to the pictures: date, location, comment,...
It's a XML file named index.xml stored in the images folder.

To create an index file:
   - Start the application specifying a folder of 3D pictures:
      For instance: java -jar piphoto3d.jar -folder=/home/pi/Images/3D/Paris
   - Press Ctrl+S, the index file is created in the pictures folder.
   - Exit the application then restart it asking to use the new index file:
      For instance: java -jar piphoto3d.jar -index=/home/pi/Images/3D/Paris/index.xml
   - Add information to the pictures: press the F7 key to open the Edit picture info window.
      
   - There we can give the picture a title (or a location), add a comment, date and hour and specify a GPS position.
   - Do not forget to press Ctrl+S to record the modifications into the index!

To handle different images folders:
piphoto3D allows to navigate between images folder that have been previously indexed. These folders must be sub-folders of a master folder.
The command: java -jar piphoto3d.jar -albums=<master folder> will start the application in albums mode and load the found index files.
The application will then display the following menu allowing to select the folder to display:
      
Use the Pg Up / Pg Dn keys to display the different pages of the menu.

Notes

Limitations
   - The application can read JPEG files (file extensions: .jpg, .jpe, .jpeg and .jps), PNG files and MPO files.
   - The depth positioning of comments is not possible in the interlaced modes nor the anaglyph modes.
   - With older versions of Java, you have to specify how much memory is allocated to the application, if an error message is displayed while loading an image, try to increase the memory using the following parameter: -Xmx300m
      For instance: java -Xmx300m -jar /home/pi/java-pi/piphoto3d.jar -albums=/home/pi/Images/3D ...

Using with a Raspberry Pi Zero
This nano computer is very slow (single core processor, few memory)!
Going from an image to the next can take several seconds, it is therefore advised to resize beforehand the pictures to the size of the screen.
The new Pi Zero V2 is fitted with a 4-core processor and should be a little faster.

Using the dual HDMI outputs on the Raspberry Pi 4
The Raspberry Pi 4 is fitted with two HDMI outputs making possible 3D projection with two videoprojectors from this device.
Here are the parameters to using in this case: -screen=0,1 -m=0 -w=f

Sample script to start the application
#!/bin/bash

# Sample script for using piphoto3d with a 3DTV

# Explanation of the parameters used:
#  -albums=/home/pi/Images/3D : set album mode and specify the location of the root folder of the 3D images
#  -v=1 : display messages during the execution of the application
#  -b=202020 : backfround color
#  -x : process input images as crossed-eye rather than parallel
#  -d=10 : in automatic slideshow mode, set the delay between each picture
#  -t=C : position of the picture comment (here centered, at the bottom)
#  -m=1 : 3D mode (here half-width side by side)
#  -z=5 : depth position of the comments
#  -f=Arial,30 : font to use for the comments
#  -fm=Arial,28 : font to use for the menu used to select the albums
#  -menu=6,8 : size of the menu (here 6 columns x 8 rows)

java -Xmx300m -jar /home/pi/java-pi/piphoto3d.jar -albums=/home/pi/Images/3D -v=1 -b=202020 -x -d=10 -t=C -m=1 -z=5 -f=Arial,36 -fm=Arial,28 -menu=6,8

Version history

v1.5.5 (2023/03/23) - Minor bug corrections. Added "-p=M" parameter for displaying the date as: "Month Year".
v1.5.3 (2020/12/08) - MPO file support.
v1.5.1 (2020/06/13) - First public release.

Copyright © 2006-24, www.stereoscopie.fr - Contact: pierre <at> stereoscopie.fr