News archive
JPEG Saver 4.11.2
Here's another minor update to JPEG Saver, fixing a couple of bugs that were reported to me and some other things that I noticed while testing and using it myself.
The most glaring bug fixed in this version is one that would rotate images incorrectly, due to my misunderstanding some of the EXIF specification. The details of how the image should be rotated to appear the right way up on the screen are stored as a field in the image's EXIF data. If JPEG Saver came across an image without an orientation field in the main block of EXIF data, it would look in the next EXIF block for the field (if there was a second block). The second block is for details about the thumbnail image that is sometimes embedded in the main image, and JPEG Saver was taking the orientation from here and rotating the main image the way that the thumbnail image should be rotated instead of leaving it unrotated. Don't ask me why the thumbnail should have a different orientation from the main image, but it can happen and now JPEG Saver should be able to cope with it.
The first bug has been around for a long time, but the second was fairly new. When JPEG Saver happened to choose the same image to display twice in a row, it was not restarting the timer to load the next image. This was because the image loading code found that the image to be loaded was already in memory so didn't bother to load it again, and also didn't bother telling the main thread that the image was loaded. This meant that the main thread sat waiting for a message that never arrived and the images stopped changing.
JPEG Saver 4.11.1
The main changes in version 4.11 of JPEG Saver were probably not all that exciting, so I've tried to add something genuinely useful in version 4.11.1 - a “Preview” button on the configuration dialog. Pressing this button will save the current settings as a new temporary file (along with a copy of the current database) and then start up the screen saver side of JPEG Saver using this temporary config. After you exit the screen saver, the configuration dialog will still be on the screen for you to make any further changes.
The two other quite noticeable changes in this version are a new “Shutters” transition, and a new option in the interactive options dialog for specifying the filename to use for the desktop wallpaper BMP file that is saved when you press the F10 key.
I've changed the way that the background metadata scan works too, to make it cause less lag when using interactive input. The scan normally checks a batch of ten files in each job, which would cause some delay to loading the next image. The batch size is now reduced to one image when you press an interactive key (or use a mouse button/wheel) and is returned to the normal batch size when the delay between images causes the next image to be loaded automatically.
JPEG Saver 4.11
Apart from the usual bug fixes and handy additions there is one new feature in JPEG Saver 4.11 that I'm a bit unsure about. I'm not sure how many people will want to use it, and I'm not sure that I can explain what it does very clearly either.
The new option should be apparent as soon as you open version 4.11's configure dialog. The “Clear database” button has moved to the “File »” menu and been replaced by a drop-down box labelled “Maximum shape skip”. The options in the drop-down are “Off” (the default), “10”, “50”, “100” and “250”. So far so good, but what do the numbers mean?
The number you choose here is how many images JPEG Saver will skip over looking for one that fits the shape of your screen. If you have a normal 4:3, 16:9 or 16:10 monitor, then it will try to pick an image that is either square or wider than it is high (a landscape format image). If you are using a monitor that has been rotated through 90° into a portrait shape, then JPEG Saver will try to find images that are square or taller than they are wide.
TrayBlank 1.5.1
What? Another version of TrayBlank just a couple of days after the last one? Yes, there was a bug in version 1.5 that meant it could crash if it was started up without a screen saver already being set. Fixing this bug is the only difference in TrayBlank itself.
The installer though, is a bit different. For the version 1.5 installer I enabled the selection of installing for the current user or for all users. It sounds quite useful - except that it didn't work. I've taken the option back out again and now the installer will always install for all users.
As an alternative for people who don't like installers, this time I've included a zip file containing the TrayBlank.exe and the ReadMe.txt files. You can run TrayBlank.exe from anywhere you like - it stores its hotkey settings in the registry, but that's it.
TrayBlank 1.5
This new version of TrayBlank is a bit smaller, and a bit more useful. It displays the currently selected screen saver in the tooltip, and there is an extra submenu for choosing how long the timeout is before the screen saver starts automatically.
The timeout submenu displays a tick or check symbol next to the current timeout value - but only if it happens to be one of the values in the menu. Obviously you can still set the timeout to whatever value you like using the Control Panel.
For people who are interested in this kind of thing, setting the timeout
works by calling the SystemParametersInfo()
function with the
SPI_SETSCREENSAVETIMEOUT
option. The timeout value that Windows
uses is actually in seconds, so remember that if you decide to use the function
in your own software.