ArtSaverApp: a MacOS Slideshow App for Beautiful Pictures

Because Your Pictures are Worth it

 

Did you ever wish for a slideshow app that would show the place and time where the images

were taken? Or find the the folder in which each one is stored on your hard disk?

Did you sometimes want to go back through the pictures it has just displayed?

Then ArtSaverApp might be the right slideshow app for you.

(And it can be turned into kind of a screensaver surrogate - see below.)

 

This app presents your pictures as a "slide show" or "picture flow".

It is meant for people who don't need fancy visual effects, but just

some basic animations (zoom in/out, pan & zoom, cross-dissolving, or static display),

but want to see their pictures as big as possible and, in particular,

want more control over the information that is displayed with the image.

You can customize these much more than Apple's built-in slide show screensaver.

It is mostly geared towards people who want to see their collection of beautiful images

as large as possible, and with some information which one of their images they are seeing.

Many artists (photographers, painters, etc.) like ArtSaverApp.

 

You can find all of ArtSaverApp's options in the app's Settings, as usual.

To learn more about an option, just hover with the mouse over the control.

Below are some more in-depth explanations for some of the settings.

 

I think, ArtSaverApp also handles huge (i.e., 100k+) image collections better than Apple's

built-in picture screen saver, because it builds a database of the images and stores it on disk,

rather than scanning the folders every time it gets launched.

 

Also, your image collection can be scattered about many subfolders.

For the tech savvy, there is even a way to collect images across different

folders (for instructions, see below).

 

There is a "companion" screensaver, called ArtSaver, which will sit in System Settings'

screensavers section, but you will need that only under very special circumstances.

For more details, see below.

 

 

Keyboard Controls

 

You can always bring up a help screen showing these keyboard controls by pressing H

while the app is running.

 

H                                bring up the help screen at runtime

space bar                   pause the slide show, i.e., the current image will be

                                   displayed forever (the zooming animation will  continue)

arrow left/right         browse previously shown images

return                        reveal current image in Finder (and quit the screensaver)

delete                         move current image to Trash, if enabled in Preferences

                                    (works only when ArtSaverApp is running on a single monitor)

Z                                  pause the zooming/panning animation (but continue with slide show)

I                                  toggle display of information (at bottom of screen)

B                                  blank screen (and unblank)

F                              switch to full-screen (and back)

 

 

 

How to Review the List of Pictures ArtSaverApp Has Displayed

 

In order to retrieve a list of all the images ArtSaverApp has displayed after you stopped it,

copy this line into Terminal:

  log show --predicate 'subsystem == "de.zach.ArtSaverApp"' --info

(It will take a few seconds to show results.)

 

Alternatively, invoke Console.app, type "de.zach.ArtSaverApp" in the search box (w/o quotes),

select SUBSYSTEM instead of ANY, and check Action / Include Info Messages.

 

 

 

Screensaver Surrogate Mode

 

If you'd rather have your Mac launch ArtSaverApp automatically for you after some idle time

(like it does with real screensavers), but don't want to miss the keyboard controls,

then you might want to try the helper app ArtSaver Auto Launcher, which you can download here:

    http://artsaver.de/#download

Download it, launch it (a new little icon will appear in the top right status bar),

make the settings you want, and let it launch ArtSaverApp for you. That's it.

(Of course, you can still launch ArtSaverApp yourself as usual, too.)

 

Note that all of this has nothing to do with the screensavers in System Preferences.

Also, don't try to use "hot corners" for launching ArtSaverApp it will not work,

or, worse, launch the wrong thing.

 

Just like ArtSaverApp, you can move ArtSaver Auto Launcher anywhere you want;

/Applications or  ~/Applications are good places.

 

You might even consider adding ArtSaver Auto Launcher to your Login Items.

(If you don't know how to do that, here are some instructions.)

 

A note about safety:

ArtSaverApp cannot lock the screen while it is running (which a real screensaver can do).

Consequently, DON'T use it in places where the public could access your Mac!

(Your Mac will still lock the screen when it goes to sleep, of course.)

 

 

 

Multiple Screens/Monitors

 

If you have multiple monitors connected to your Mac,

then you need to specify settings for that monitor on which you want to run the app.

You can have different settings for different monitors; you can even specify different image folders.

 

Right now, ArtSaverApp can run only in one window at a time.

If you need slideshows running simultaneously on several monitors, then you need to use

ArtSaver, the screensaver proper sitting in your Mac's System Preferences.

The good thing is that you can specify different folders for each monitor.

The limitation in this case is that you cannot use the keyboard (for pause, or in order

to go back, etc.).

 

But you could "hack" ArtSaverApp by making a copy of the app (or several),

then make all the settings for the different monitors with one app (while only one is running),

close it, then run both apps (i.e.,  ArtSaverApp  and  ArtSaverApp copy) at the same time,

go into each instance's Settings and select the different settings for the different monitors.

It should even work with an iPad connected via Sidecar as an auxiliary monitor.

You may need to check the option "Displays have separate Spaces” in Mission Control (System Preferences).

 

If you don't need the keyboard controls, you can also try ArtSaver, the companion screensaver proper,

which offers proper multi-monitor support (see below).

 

 

 

First Invocation

 

When ArtSaverApp is invoked for the very first time, it tries to scan your folder ~/Pictures in your home.

(Should that fail, you need to change the folder.)

Usually, you might want to specify a different pictures folder anyways, I presume.

 

However, please note that, as of Mojave (macOS 10.14), it cannot access the photos library any more!

 

For more information, see

    http://www.artsaver.de/index.html

 

 

 

Exporting Photos from the Photos.app

 

If and when exporting your photos from the Photos app (so that ArtSaverApp

can access and display them), I recommend the following settings in the Export dialog:

- Include "Title, keywords, and Description" and "Location Information"

- File Name: Use Title  (unless the original files already had descriptive file names when importing)

Then, in ArtSaverApp's options, check "filename" and "info"; thus, you will get the title, and several

other information on the picture in ArtSaver (see below "More Info About 'infos' to read a precise

description.)

 

 

 

Accessing Photos in the Photos.app Directly

 

There is a "trick" with which you can still - sort of - access directly the photos that are stored

inside Photos.app's database, without exporting them:

1. Copy this as one line into Terminal:

        open ~/Pictures/Photos\ Library.photoslibrary/originals

2. A folder will appear with subfolders named with numbers; at the top there is a little folder symbol

3. Open ArtSaverApp's preferences, click "Change", an "Open" dialog will appear

4. Now click and hold the little folder icon of the folder from step 2,

    and drag it into the "Open" dialog and release

5. The "Open" dialog should now show the folder from step 2

6. Select "Follow aliases", then click OK

 

Of course, this is just a crude work-around; you only get all or nothing.

And the filenames don't tell you anything (but the place & date do, hopefully).

 

Warning: disable the Delete function in ArtSaver's Preferences!

Deleting a photo might render the Photos.app database corrupt!

 

 

 

Companion Screensaver

 

There is a screensaver, ArtSaver, very similar to ArtSaverApp, which can get launched

by your Mac automatically after a period of user's inactivity  (just like your default screensaver).

Advantage:

- the screensaver can run on multiple monitors simultaneously, even with different settings!

- your screen gets locked (provided you made the appropriate settings in System Preferences)

Limitations:

- ArtSaver cannot be controlled by keyboard, like ArtSaverApp can.

- Might not work under Mojave (macOS 10.14) ! (YMMV)

See ArtSaverApp's web page for more details.

 

Installation: see the manual in the app.

Prerequisites: runs under the same macOS version as the regular app.

 

 

 

Making ArtSaver Scan a Number of Different Folders,

Difference Between "Use Spotlight" and "Follow aliases" in the Search Options

 

If the terms "folder alias" or "symbolic link" (a.k.a. "symlink") don't mean anything to you,

then you can safely skip this section and just use the default setting "Use Spotlight".

 

The option "Follow aliases" is only relevant to people who want or have a more complex folder

structure than just a simple folder with its sub-folders.

For instance, if you have several folders (A, B, ..) that do not reside in a common parent folder,

then you can create one main folder (e.g., "ArtSaver Pictures") and put aliases (or symbolic links)

to the real folders A, B, ..., into "ArtSaver Pictures" (how to create folder aliases).

That way, you can make ArtSaverApp show images from several different folders.

 

If you are wondering why there are two different options in ArtSaver:

Spotlight cannot follow aliases (nor symlinks), but the search method I implemented

in ArtSaver is (necessarily) slower than Spotlight.

 

 

 

More Info About the "Info" Checkbox in ArtSaverApp's Settings

 

Which information does ArtSaver extract from the photo files,

and in which order does it display that?

There are four pieces of info ArtSaver tries to display when you check "info":

  1. kind of a "description", 2. keywords/people, 3. location, and 4. date/time.

ArtSaver tries to find this information, then assembles them into one line,

to be shown underneath the file name.

Here are the "EXIF tags" ArtSaver evaluates to derive this information:

1. ArtSaver tries a succession of tags to find a "description" of the image:

    first, it looks for the IPTC tag "Caption/Description"

    (a.k.a. "ImageDescription" or "Caption/Abstract"),

    then for IPTC/XMP tag "ArtworkContentDescription", then for the TIFF tag "Image Description";

    after all that, it checks for the presence of the IPTC tag "ObjectName" (a.k.a. "Title")

    and prepends this to the description, but only, if it is not identical to the filename.

2. The keywords are extracted from the IPTC tag "Keywords"; if not present, it will

     try the IPTC/XMP tag "PersonInImage" (a.k.a. "Person Shown")

     ArtSaver will try to display all keywords.

3. Location is derived from the GPS info if present in the picture;

    if the Mac has internet connection, then ArtSaver will display it as city & country,

    otherwise it will just display longitude & latitude.

4. For date/time it uses the EXIF tag "DateTimeDigitized", a.k.a. "CreateDate".

 

Most of these tags are used by Apple Photos when you export pictures including

Title, Keywords, Description, and Location information.

If you have people tagged in your exported photos from the Photos.app,

then those names will appear as Keywords (older Photos versions) or as

"PersonInImage" (newer Photos versions).

(You can preview the tags by Preview's "Show Inspector";

also, you can view and manipulate tags using the command line tools 'exiftool' or 'exiv2'.)

 

In addition, ArtSaver filters the description (step 1) in order to economize on screen space:

if there is a common prefix between image description/caption and the filename,

then this is removed from the description.

In the extreme case, if the caption equals the file name, then this is omitted entirely from the info line.

 

 

 

Zoom Direction (In or Out) of Each Image

 

Usually, ArtSaverApp chooses the zoom direction (in or out) itself, usually alternating.

In cases where the image's aspect ratio or size are extreme, it might choose a zoom direction

different from the regular order.

 

You can, if you want, explicitly choose that direction yourself by pressing the keys

[ or ] while the image is being shown, in order to fix the direction to "zoom in" (i.e.,

start with small image) or to "zoom out" (start with large image), resp.

If you forget the meaning of those keys, you can always look them up by clicking H.

 

ArtSaverApp will remember these zoom directions across invocations.

However, it will forget them whenever you do a rescan or change the pictures folder!

 

If you want to fix those zoom directions for a whole set of images,

I recommend to change the options/preferences temporarily so that ArtSaverApp

switches rather quickly from image to image, and so that the cross dissolve duration

is rather short.

 

 

 

Excluding Specific Image Files

 

If ArtSaverApp's defaults still allow some "small" images to show up in the slide show

(they will probably look very grainy), you can exclude them by adjusting the "Skip images" settings

(see below).

 

If you want to exclude specific file formats, for instance, all cr2 files,

then you can add this line in the "regex" field at the bottom left:

.*cr2

You can add similar patterns for other formats (one pattern per line).

 

 

 

On Regular Expressions in the "Skip images.." box in ArtSaverApp's Settings

 

Here are some examples that, hopefully, get you started:

banana

   excludes any images if filename contains "banana" anywhere

.*banana.*shake.*

   excludes images if filename contains "banana" anywhere,

   followed by "shake" anywhere to the right

.*[0-9][0-9].*

   excludes images if filename contains two digits in a row anywhere

[tT]umb.*

   excludes images if filename starts with the word "thumb" or "Thumb"

 

For details on the syntax of regex's, see

   https://unicode-org.github.io/icu/userguide/strings/regexp.html .

 

 

 

The Order in Which ArtSaverApp Shows Images

 

There are two fundamentally different ways, controlled by the options under "Image order":

1. Random order ("Shuffled" on): should be obvious;

2. Sequential order ("Sorted" on): ArtSaverApp starts with the first image in the list, then displays

    the second one, etc., unless "Start randomly" is on, in which case it will pick a random index

    in the list of images, and then display images in sequential order from there.

    Images can be sorted either:

     a) "by filename": the list of images is sorted alphabetically (using the complete path); or,

     b) "by date": the list is sorted by the EXIF tag DateTimeDigitized (which is displayed as

          Create Date in exiftool). The date stored there is taken as-is,

          no time zone conversion is done.

         Caveat: this option makes the scanning of your image folder(s) much slower!

         Scanning 150k images taking 45GB on an external hard drive will take around 15 minutes.

 

During one run, ArtSaverApp never shows the same image twice, regardless of the setting of

"Shuffled". Between different invocations, however, behavior is different, depending on "Shuffled":

1. Shuffled on: ArtSaverApp forgets which images were shown in the previous run;

2. Sorted on: ArtSaverApp resumes to display the images where it left off in the last run,

    unless "Start randomly" is on, in which case it will pick a new position randomly in the

    list of images, and then continue sequentially from there.

 

 

 

Starting in Full Screen

 

You can launch the app yourself directly in full-screen mode by running this command in Terminal: 

      open -a ArtSaverApp --args -f

 

 

 

Feedback, Bug Reports, Requests for Enhancement

 

Email: gabriel dot zachmann at icloud com

Home page: www.artsaver.de

Or click on the "Feedback" button in the options pane.

Or enter issues directly at Github: https://github.com/GabZach/ArtSaver/issues

By sending feedback, RFE's, donations, or helping find a bug,

you will become eligible for receiving free betas and updates of ArtSaverApp for eternity.

 

In case of a bug report, please send a log file!

You can try to use Console:

   https://support.apple.com/guide/console/reports-cnsl664be99a/mac

Or, just copy the following as one line into Terminal:

  log show --predicate 'subsystem == "de.zach.ArtSaverApp"' --info --debug > ~/Desktop/Log.txt

Then send me the file Log that appeared on your desktop.

 

 

 

Mailing List

 

If you subscribe to the ArtSaver mailing list

    https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/artsaver

you can receive announcements of new versions (and betas).

The mail volume is extremely low, approximately, on average, 1-2 mails per year.

 

 

 

Change Log (Combined for App and Screensaver)

 

3.3 (July 2023):

 

New feature:

- Support for sorting by embedded date, as an alternative to sorting by filename

  (EXIF tag DateTimeDigitized, a.k.a. CreateDate)

  (Caveat: in case of sorting by date, this takes much longer than sorting by filename!

   However, there is no faster way - even exiv2 is as slow as my code; see

  also the discussion on https://github.com/Exiv2/exiv2/discussions/2609)

 

Changes:

- Made the code more robust (hopefully) in the case where several monitors have the same name

  (unique-ification part); regression?

- Improved the heuristics (hopefully) to decide when to shrink the size of the history,

  in order to ease the memory pressure on Mac's with a small RAM.

- Paths of image files are now truncated at the beginning so that only the part after the common

  base folder (which the user selected in ArtSaver's settings/options) is shown

 

Fixed:

- Potential bugs in scanDirectoryByHand: in case a file URL was no longer available, or

  mainDirectoryLocation_ was still nil (which could happen after a fresh install?)

  (reported by Tom Cunningham; really fixed?)

- Memory leak in case the image list contained just 1 image

- Screen saver (surrogate) mode handles sleeping Mac better (?)

 

Known Bug:

- On a multiple display setup, the screensaver (in System Settings) sometimes runs only on one

  monitor/display, even though macOS (legacyScreenSaver) launches one instance per display.

  This seems to be a bug in macOS 13.x . It affects only some users. Nothing I can do about it ..

 

 

3.2 (March 2022):

 

New features:

- Allows for specification of fixed zoom direction for each and every image individually (in or out)

  See the manual for more information (only available in the app, not in the screensaver proper)

- ArtSaver Auto Launcher has a new menu item "ArtSaverApp Preferences", which goes directly to

  ArtSaverApp's preferences

 

Changed:

- Should run natively on Apple silicon (M1 chips); the build is now a "universal" build

- Uses system alert sound now, instead of hard-wired "Funk" sound effect

  (System Preferences > Sound > Sound Effects allows users to choose the alert sound they prefer)

- Auto Launcher: when paused, icon is greyed out

- Auto Launcher: "Pause" changed to "Pause 2 hours"

- Skip patterns: you can now also use single words w/o any regex special chars (one per line)

- Formatting of date/time should be more user friendly now and use the locale def'ed in System Pref's

- Better random number generator; hopefully, the image sequence is "more random" now

- When run for the first time, ArtSaver/App tries to scan ~/Pictures by default;

  it will store the complete list of pictures found therein using Spotlight, and use them until the user

  changes the folder

  (rm ~/Library/Containers/de.zach.ArtSaverApp  to repeat this process)

- Better handling of common prefixes between caption/title and file name

  (common prefix is removed from the description line, i.e., second info line)

- Removed keyboard shortcuts in ArtSaver Auto Launcher (never made sense for status item)

- "Rescan" button initiates rescan right-away, no click on "OK" needed any more

- Several "Image gone" error messages in a row will display for shorter time

 

Fixed:

- Video conference tools are recognized better by the Launcher; FaceTime included

- In the screen saver surrogate mode, interrupt events are (hopefully) better handled,

  e.g., Mac sleep/wake, return key, Facetime call

- ArtSaverApp exits fullscreen when its preferences sheet is brought up

- Non-english monitor names caused problems, should be fixed

 

 

3.1.4 (Aug 2021):

 

Changed:

- Uses system alert sound now, instead of hard-wired "Funk" sound effect

  (System Preferences > Sound > Sound Effects allows users to choose the alert sound they prefer)

 

 

3.1.3 (May 2021):

 

Fixed:

- Bug in macOS 10.15.0: consequence is that ArtSaver would not open the

  folder dialog when clicking "Change" in Settings, for some users

 

 

3.1.2 (March 2021):

 

New features:

- Auto Launcher has a new "Launch Now" menu item

 

Fixed:

- The management of different preferences/settings for different monitors had stopped working

  (probably due to one of the Catalina updates) -> fixed

 

Changes:

- Auto Launcher will filter out instances of ArtSaverApp in /tmp and in ~/Library/Developer

 

 

3.1.1 (Oct 2020):

 

This version was necessary to be able to modify the text in the app store,

which I needed to modify in order to clarify something.

 

 

3.1 (May-Aug 2020):

 

New features:

- New stand-alone app that contains all the features of the old ArtSaver

  (as opposed to the new ArtSaver which cannot have keyboard control any more)

- Handles huge images (50+ MB, 8000+ pixels) much more smoothly

- You can delay the display of the infos at the bottom; good for having quizz games

- When shuffle mode is off, you can tell ArtSaver whether or not to start with a random image

  (when it doesn't, ArtSaver keeps track across invocations)

- You can invoke ArtSaverApp in full-screen: open -a ArtSaverApp --args -f

- Added command line flag -s, to run ArtSaverApp in "screensaver surrogate" mode;

  in that mode, it will quit when an unknown key is pressed or mouse is moved

- ArtSaverApp now has a helper app, ArtSaver Auto Launcher,

  that can launch ArtSaverApp after some idle time (it will prevent the macOS screensaver from

  launching, and it will not launch ArtSaver if one of the well-known video conference tools is

  running)

- ArtSaver Auto Launcher can/will launch multiple instances of ArtSaverApp, if present

- Additional tags: TIFF ImageDescription, IPTC ObjectName (Title), XMP/IPTCExt PersonInImage

- Delete key can be enabled/disabled (only relevant for regular app)

 

Fixed:

- Compiles and runs under Catalina (which incurred a LOT of changes under the hood),

  BUT! .. see below

- Delete key did not remove the image from the database

- Removed a bug that caused the previous image to flash for a split-second after it had been

   faded out

- The screensaver can run simultaneously on multiple monitors, even if they are identical

   (the app still can have only one window)

- No "flashing" any more (hopefully)

- With lots of huge images, memory pressure could become very high (due to keeping history

  of images)

  Much alleviated by changing history size dynamically, depending on the amount of unused memory

- Retrieves ArtworkContentDescription IPTC tag, if CaptionAbstract is not present

- Adjusted font size of help text in case of very large fonts for the bottom lines

- Multi-monitor support got broken b/c of API change

 

Lost features in the screensaver:

- No more key strokes when the screensaver ArtSaver is running (e.g., the arrow keys are gone)

  This regression is due to Apple.

  Actually, it is probably for the better; imagine what a malicious screen saver could do, if keystrokes

  are possible, and the screensaver continues to run: it could display a screen that *looks* and behaves

  like a login screen! you'd enter your password ...

 

Changes:

- When run for the first time, ArtSaver doesn't scan ~/Pictures any more by default

- Added security-scoped bookmarks for the folders containing the images,

  which incurred a large number of more changes in the code internally (necessary for Catalina)

- Long path names are truncated at the beginning; but only, if the path to the image is being

  display, too. Also, the caption (EXIF tag) is *not* displayed, if it is equal to the filename.

 

 

 

3.0.1 (Oct 2019):

 

Bug fix:

- If all flags (path, name, info) were off, ArtSaver would still show some info

- Reduced the chance of the "flashing" of the previous image when the new one is completely

  faded in

 

 

 

3.0 (Sep 2016 - 2019):

 

New features:

- Can trash images while screen saver is running (delete key)

- Can pause zooming while running (command key) [not quite perfect, but maybe good enough]

- Can toggle display of information at bottom of screen during runtime ( I key)

- Can follow aliases (and symbolic links) in the folder tree

  (allows for more complex organization, e.g., one root folder pointing to many different other folders);

- Can display additional info of photos, if available; currently, ArtSaver looks for

  Description, Keywords, and Location (see Info in Photos.app) [gone]

- Drop shadow behind text

- Can display GPS location, EXIF date, and caption/keywords (IPTC) metadata

- Ken Burns effect

- Rearranged GUI (screen saver options pane)

- Trilinear filtering of images

- Can blank the screen at runtime with the B key

- Can show only path w/o filename (until now, only filename, and file+path were possible)

 

Lost features:

- Can't access the photo library any more :-( ! (due to Mojave's new security features, which are good)

- Parameter "cycle time" is gone now; I figured it is not really necessary;

  now, (cycle time) = 0.5 * (image duration time)

 

Enhancement of existing features:

- Can use up/down cursor keys (as alternative to left/right)  for switching to previous/next key

- When images are displayed randomly, none of them is shown twice until all have been shown at least once

  (this uniqueness is achieved only per each run, not across runs)

- No limits on image size any more (almost none)

- The "Rescan Now" button also applies to photo albums [defunct]

- Dito for the Automatic Rescan

- In case images are displayed in non-random order, then they are sorted alphabetically

  (sorting is done on the complete path)

 

Changes:

- Use donorbox.org for the donation button

- Replaced iPhoto albums by Photos' albums (Defunct as of 2019)

  be sure to right-click on the album and "Download Originals to this Mac"!

  It also respects the "Hidden" flag, i.e., photos in the Hidden album are never shown

- Slight changes in the screen saver options dialog

- Uses NSPathControl instead of NSTextField for the images directory

 

Bug fixes:

- Hot corner for starting the screensaver seems to work again

- Cross-dissolve works again

- When ArtSaver is interrupted (e.g., by the user moving the mouse) and then resumes later,

  then it continues in the list of images at the same point where it left off (when randomization is off)

- Chinese file names should work now

- Randomization did not work sometimes (seed was missing)

 

Under the hood: Replaced a lot of deprecated API methods:

- Text drawing (replaced CGContextShowTextAtPoint et al. by CTLineDraw et al. from Core Text)

- loadNib:owner:

- headermaps

- ModifierKeyFlags

- Replaced Scripting Bridge with MLMediaLibrary, in order to access Photos (now defunct, too)

- Switched from NSLog to os_log(3): NSLog() is deprecated, and os_log provides better

  functionality in Console.app and log(1)

- Switched from manual retain/release to ARC (at last)!

- Use CATextLayer for rendering the file name (gets rid of some compiler warnings, too)

- More efficient handling of the EXIF orientation flag

 

Known bugs:

 

 

 

 

 

2.2 (Feb 2011):

 

New features:

- ArtSaver can handle multiple monitors (screens), i.e., it will store different preferences for each

  screen; in particular, this will allow you to display different image lists on different screens.

  (For this to work, you must uncheck "Main screen only" in System Preferences / Screen Savers!)

  There is a deliberate offset between the two (or more) screens, in order to prevent disk fighting

  in the case all screen savers have the same duration per image. (In that case ArtSaver would have

  to load the new images at the same time for all screens.)

   Keyboard input (pause, forward, backward, show in Finder) goes to all screens simultaneously.

- You can switch cross-dissolve off, and you can change the duration of a cross-dissolve

- ArtSaver can now automatically re-scan the directory / photo album after a user-specified time

- The "skip patterns" are now regular expressions (not file patterns any more!);

  this gives you more flexibility

- The "skip patterns" (regexp's) can handle unicode now (i.e., characters from all languages)

- You can switch off the displaying of the image file name's extension (e.g., the ".jpg" suffix)

- General improvements of the user interface of the configuration sheet

- When displaying images in sequential order ("Randomize images" is off), you can now go back

  (cursor left) indefinitely

 

Bug fixes / changes:

- Matching of the skip patterns was buggy

- When presenting images sequentially, ArtSaver "forgot" where it was stopped last time, so it always started

  with index 0 (= first image in the list) each run;

  now, it continues with the image it displayed during the last run

- Should work under 10.5 again (it does work on my machine with 10.5.8 / PPC G4)

- Improved the part of the UI controlling the options for the displaying of the file names

 

 

2.1.1 (May 2010):

 

Bug fixes:

- paths beginning with "/tmp" were handled incorrectly

- path with UTF8 characters didn't print at all in the log file

 

 

2.1 (Nov 2009):

 

Bug fixes:

- path names with '/' were not handled correctly

- maybe, version 2.0 contained a bug when searching was done by hand

  ("Use Spotlight" box is off); this should be fixed

- the usual installation via double-click should work now

 

 

2.0 (Sep 2009):

 

New features:

- pause animation (space bar)

- leaf through previously shown images (left/right cursor)

- show image in Finder (return key)

- switching images is now done with cross-fading

- CPU usage is now only 5% (before 60%!); at least on my MacBookPro under 10.5.8 with an Intel

  Core 2 Duo and using the GeForce 9400M. This is made possible by utilizing Core Animation,

  which entailed a heavy internal restructuring of the code

- correctly observes the EXIF orientation tag

- new control over whether/how many images should be displayed without black border

- non-randomized image picking (always goes through the images in the same order)

- runs under both Snow Leopard (10.6) and Leopard (10.5)

- raised the text line with larger displays

- version number in config sheet is extracted automatically from the Info.plist

 

Bug fixes:

- New preferences sometimes didn't get saved;

  code for preferences handling is much cleaner now.

- Works on PPC again (still needs 10.5 or higher)

 

 

1.7 (Mar 2008):

 

Can use iPhoto albums now. (Still creates a list of images, thus iPhoto does not have to get invoked

during actual screen saver runs, only during configuration.)

Works only under 10.5 (Mac OS X Leopard).

 

 

1.6.3 (Feb 2008):

 

Compiled for Leopard.

Improved handling of error messages, for instance, "Image gone: ..." is

being displayed now for only 3 seconds.

Improved the scanning directory trees for images "by hand", i.e., without using Spotlight.

Version number in config sheet and info.plist

 

 

1.6.2 (Jul 2007):

 

Fixed a bug, which apparently occured very rarely.

Symptoms: ArtSaver worked in Preview mode, but showed a blank screen in full-screen mode

 

 

1.6.1 (Jul 2007):

 

Small images are now displayed at a minimum size of 0.4 * screen-size,

even if the user chooses to have ArtSaver display much smaller images.

 

 

1.6 (Jul 2007):

 

New option to adjust to font size of the image file name.

 

A 'rescan' button to ease invoking a rescan of the image directory when its contents change often

 

 

1.5 (Mar 2007):

 

You can see the "picture log" in either of two ways:

In a Terminal 'syslog -k Sender ArtSaver';

or, via Apple Menu -> About this Mac -> More Info -> Logs -> system.log

 

Option to display only the basename of the pictures.

 

Option to switch the zoom in/out effect off.

 

Various little things in the source code.

 

 

 

 

Acknowledgements

 

I'd like to thank the kind people on comp.sys.mac.programmer.help, in particular, Michael Ash,

Doc O'Leary, David Phillip Oster, Nick Hristov, Uli Kusterer, Patrick Machielse, Matt Neuburg.

I am also extremely grateful to the kind people on the cocoa-dev mailing list (in particular, Douglas Welton,

Shawn Erickson, Graham Cox, Jens Alfke, Nick Zitzman, Quincey Morris, Gary L. Wade,

Richard Charles, David Duncan, Alex Zavatone, Glenn L. Austin, Rob Petrovec,

Steve Mills, Trevor Phillips, Jim Crate, Stephane Sudre, and many more)!

Without them, I could not have implemented some of the features.

Many thanks also to those users that have sent in requests for enhancement or bug reports and helped

with testing new features. In particular, I'd like to thank Jerome Bullard, Lars Gottlieb, Aaron Reitz,

Christian Aubert, Pete Norloff, Doug Gordon, Jay Novello, Jean Devriendt, Bernhard Gantner, David Marriott,

Samphois Pin, Jim Test,

Last, but not least, a huge "thank you" goes to the developer of SaverLab! Without it, developing screen savers

would have been virtually impossible.

 

 

 

 

Copyright

 

Gabriel Zachmann, 2005-2077