JPEG Saver 5.25
It's not a bugfix release this time, I've actually done some useful stuff in this version. A lot of it is internal with no obvious changes to how JPEG Saver looks, but it does make some other useful stuff possible.
This is not a pipe
The big internal changes are something I have had planned for a couple of years, and basically move some of the processing around and into a configurable pipeline to make things work better.
Why? Well, in previous versions JPEG Saver's loading process was like this:
Load image ➔ Resize ➔ Draw
In that process “Draw” was doing a lot of the work, and it was doing it in each display's main thread. That meant JPEG Saver could be a bit unresponsive while it was loading, resizing and recolouring background images all as part of the drawing stage.
In version 5.25, the pipeline-based process is something more like this:
Load image ➔ Resize ➔ Background setup ➔ Load background image ➔ Resize ➔ Desaturate ➔ Tint ➔ Blur ➔ Vignette ➔ Draw
The loading pipeline contains all the stages from “Load image” to “Vignette”, and all the drawing stage has left to do is put things together for display on the screen. In this example there are a lot of stages included but the main image loading and resizing are the only ones that are always used, with other stages added to the pipeline based on the chosen options.
We're in the pipe, five by five
I did all this to make it possible to add some more processing for backgrounds without JPEG Saver becoming really sluggish. Thanks to that the backgrounds tab now has a new mode, “Image copy - Fit to screen”, that scales a copy of the main image up to fill the screen background. There are also two new options on the backgrounds tab, “Blur” and “Vignette”.
Blurring is quite a time-consuming process, and that is the main reason I wanted to change to the pipeline processing method before adding it. The options available for blurring are the method, which can be a simple averaging or a Gaussian blur, and the distance the blur covers. For example, a blur of 2 means each pixel is blurred with the 2 adjacent pixels in each direction, covering a 5×5 block.
Vignette is an effect like you might see on old sepia photographs, where the edges fade to the background colour. In JPEG Saver the vignette uses the “Colour 1” value for its shading, so it matches with the tinting effect of the alpha slider. The drop-down box allows you to choose the strength of the effect, with 1 being a mild bloom and 10 being a throwback to the 1850's.
There are a couple of unrelated changes in this version:
/g option I added in version 5.24 allowed for using JPEG
Saver in a window on the desktop, but soon after releasing it I realised I
had missed out a more useful function. In version 5.25 you can use the
/g option multiple times and JPEG Saver will open multiple
windows as though they are separate displays, with the first listed being the
primary display. I have no idea if this will be useful to anyone apart from
me, but I'm finding it very useful for debugging.
More image info
There are three new fields available in the image info item,
%A for the creation and modification date/time of the folder
the image is in and
%a for the modification date/time of the
image. The image creation date/time was already available as
There are a few bugs fixed in this version, because of course there are:
- There was a possible crash when deleting an image during loading - now JPEG Saver will not delete while it is loading an image, so that shouldn't happen again.
- Some of the transitions would fail to start when used on a window with odd dimensions, this should work now.
- Jumping to the favourite image could fail if the path to the image was also in another part of the database, but disabled. This is now fixed.
I also tried to fix a bug with multi-monitor systems and the order the images are displayed in some modes. I'm not sure I have that one fixed yet though, so I'll be having another look at it.
Stick that in your pipe and smoke it
The new version is available from the downloads page.