Phoenix Slides is a fast full-screen slideshow program and image browser. You can also use it to do lossless JPEG transformations and view EXIF data. It requires Mac OS X 10.9 or later.Contents:
Use the directory listing at the top of the window to navigate to a directory. You can also drag files or folders into the window or onto the application icon. Start a slideshow by clicking on the "Slideshow" button, hitting the return key, or double-clicking an image's thumbnail.
In addition to the usual clicking, you can also type in directory names to jump directly to them.
The first column of the directory listing contains a list of mounted volumes. This list is updated automatically when disks are inserted or ejected. The list is also updated if the current folder is moved, renamed, or deleted. To refresh the listing for all other file system changes (new files, renaming of other folders, etc.), click on a folder name and its contents will be updated.
Check "Subfolders" to have the program search all subdirectories for images. When building the list of images, it will go into subdirectories as it comes across them (the search is depth-first). This feature can be amusing when looking into application bundles.
You can drag a folder or a file in that folder into the window to jump to that directory. If you drag image files, they will be selected in the thumbnail view. (You can also drag non-image files to navigate to a directory; this is to be construed as a feature. :-)
When you choose a folder to browse, the program builds a list of image files (based on the file extension (like .jpg) and the four-letter type code (like 'PICT')). Phoenix Slides supports all image types that Mac OS X supports (i.e., everything NSImage can read).
After getting the list of filenames, the program starts generating thumbnails of each of the images. Thumbnails are cached in memory and discarded when you quit the program.
Phoenix Slides displays basic information (name, size, dimensions) about the currently selected file(s) in the status bar at the bottom of the window.
You can resize the thumbnails to display anywhere from 40 to 160 pixels wide. (They're stored 160 pixels wide internally.)
For those who care: Phoenix Slides uses the Epeg library for fast thumbnailing of JPEGs. Non-JPEG files, on the other hand, will be thumbnailed slowly. =P
You can select images to start a slideshow with them, move them to the trash, reveal them in the Finder, or set an image as the desktop background. To select an image, click on it. Shift-click to extend the selection; command-click to reverse the selection. You can also select images by dragging around them (in the whitespace).
Use the arrow keys on the keyboard to change the selection (this only works when exactly one image is selected, though).
The "Reveal in Finder" menu item can be handy for file operations that are beyond the limits of drag and drop. If one or more files are selected, Phoenix Slides tells the Finder to show those files. If you have "Subfolders" checked and your files are from different directories, the specific behavior will be up to the Finder. If no files are selected, the Phoenix Slides will simply open the selected folder in the Finder.
Starting a slideshow will do different things depending on the current selection:
You can start a slideshow any time after the list of filenames is compiled (you don't have to wait for all the thumbnails to load).
You control the slideshow using the keyboard. Hit 'h' or '?' during the slideshow to see all the commands (reproduced below). If you need access to the menu, move the mouse to the top of the screen.
Hit one of the number keys (1-9) to auto-advance the slideshow every 1-9 seconds. Hit the space bar to pause/continue auto-advance. Hit '0' to stop auto-advance. Hitting a key to go backwards also stops the auto-advance.
By default, images smaller than the screen will be shown at actual size. To expand them to fill the screen, choose "Scale Up Smaller Images" from the Slideshow menu (or hit command-E--think 'embiggen').
If you want to zoom in on an image, use +/- (especially convenient on the numeric keypad). Use '=' to zoom to actual size (100%). You can get back to the default size (fit to screen) by hitting '*'. When the image is larger than the screen, you can use the number keys on the numeric keypad to scroll around (1-9, except 5). Your scroll wheel will work also, if your mouse has one.
Ordinarily, the slideshow stops when you reach the last slide. You can enable loop mode through the Slideshow menu. This will cause the slideshow to wrap around to the first slide after the last one. Combined with auto-advance, this would cause the slideshow to go on forever.
You can switch to other programs while the slideshow is running (using command-tab, for example). It'll keep going merrily along behind your other windows. Click on the slideshow window to bring it back to the front.
|space||pause/continue auto-advance; go next|
|page down||go forward 10|
|page up||go back 10|
|home||go to first slide|
|end||go to last slide|
|1-9||auto-advance every n seconds|
|!||auto-advance every 1/2 second|
|h, ?||show/hide this cheat sheet|
|⇧I||more EXIF tags|
|F2-F12||assign to group n|
|⌘F2-F12||toggle group assignment|
|F1||remove group assignment|
|r||rotate right (90° clockwise)|
|l||rotate left (90° counter-clockwise)|
|⌘E||scale up small images|
|*||zoom to fit|
|1-9 (num keypad)||scroll zoomed image|
|esc, q||end slideshow|
Phoenix Slides can do lossless transformations on JPEG files. In fact, it uses code from jpegtran (including the EXIF patch), and supports most of its advanced options, which are briefly explained below:
Drop Nontransformable Edge Blocks - Lossless rotation is only perfect for images whose size is a multiple of the iMCU block size, usually 8 or 16. The "imperfect" blocks on the edge can be trimmed, if desired, though of course this is an irreversible operation. Here's more from the jpegtran docs:
jpegtran's default behavior when transforming an odd-size image is designed to preserve exact reversibility and mathematical consistency of the transformation set.... Transpose is able to flip the entire image area. Horizontal mirroring leaves any partial iMCU column at the right edge untouched, but is able to flip all rows of the image. Similarly, vertical mirroring leaves any partial iMCU row at the bottom edge untouched, but is able to flip all columns. The other transforms can be built up as sequences of transpose and flip operations; for consistency, their actions on edge pixels are defined to be the same as the end result of the corresponding transpose-and-flip sequence.
Make Progressive - Creates images suitable for incremental display over slow communication links. Progressive JPEG files consist of a series of scans of increasing quality.
Optimize Huffman Table - Slower, but creates slightly smaller files.
Grayscale - Simply removes the color (chrominance) information, leaving grayscale (luminance) data intact.
JPEG Markers - Various options to remove JPEG comments and other data (such as EXIF information) stored in the header of JPEG files.
Phoenix Slides will warn you if you attempt a nonreversible operation.
Phoenix Slides provides a method to temporarily group or categorize images. During a slideshow, hit one of the F2-F12 keys to assign an image to a group. Then, in the thumbnail view, hit F2-F12 to see images in the corresponding group. You can also hit command-F2(through F12) to toggle an image's group assignment in both slideshow and thumbnail views. To clear all category assignments, hit F1 during a slideshow, or command-F1 when viewing thumbnails. Assigning images to groups can be useful for batch operations, e.g., selecting a bunch of images to perform a JPEG rotation on.
Naturally, you will not be able to use those function keys which the system or third party utilities have reserved for other things, the F9-F12 defaults for Exposé and Dashboard being the most notable examples. However, you can usually work around this by holding down either the control or option key when pressing F1-F12.
Categories are temporary and will be lost when Phoenix Slides quits. You should think of this functionality as a sort of fancy selection mechanism.
One day, Jim (the professor in charge at the research project I work at) brought in some CDs of photos from Thailand. Let's look at these pictures, he said. We searched the Macs in the office for suitable slideshow programs, but to no avail. We ended up using the full-screen mode in Preview. It was... painful. We couldn't even rotate the images in full-screen mode. So I decided to write my own.
Remember Curator, the now-abandoned image organizer program by Caffeine Software? It's nice, but (1) it's dead, (2) the directory listing acts funny, and (3) you have to wait for a thumbnail to be generated before you can view an image in a slideshow (WHY?!). I wanted my program to rectify these problems, so Phoenix Slides is inspired in part by Curator.
Why Phoenix? Aside from its mythological significance, the phoenix is also featured prominently on the San Francisco city flag (that's where we're based). Plus, I'm a fan of Fawkes (Dumbledore's phoenix in the Harry Potter books).
Thanks to David Chow and his uncanny ability to crash my program.
Thanks to all the localizers: Thomas Steg of Karlsruhe (Germany) - German; César Piñera - Spanish; Laurent Bovet - French; Silvano Dotti - Italian.
Thanks to all those who make their source code available to learn from/adapt to other purposes, including rasterman (Epeg), Allan Hsu (Magic Lantern), and Marc Liyanage (EpegWrapper).
Thanks to Takeshi Gondo for an icon that's been better received than mine.
And finally, thanks to my old boss at my dead-end job for "terminating" me. Let Phoenix Slides be a testament to the advantages of unemployment.
Looking for localization help: If you want to translate Phoenix Slides to your language please contact me.
You can also contribute by offering programming help or making a donation along the lines of books (Cocoa, perl, linguistics), money, or skateboarding stuff.
Official web site: https://blyt.net/phxslides/
Copyright 2005-2021 by Dominic Yu. This software is free and open source. You are free to use it for non-commercial purposes. Derivative works must give proper credit to me and be shared under the same license, unless I give written permission stating otherwise.