Lossless JPEG transformations made easy with TranJPEG

You spin me right round, baby, right round, like a record JPEG baby, right round round round.

Chris Johnson, well known for a number of applications, in particular the likes of Snapper and SyncDiscs, both of which began life with David Pilling and later taken over by Chris, recently announced version 1.00 of TranJPEG (mirror), soon followed by updates to version 1.10 and 1.20, which presents a RISC OS front-end for the Independent JPEG Group command-line utility “jpegtran”, giving the user a friendly and easy way to make use of the features it provides.

JPEG is a compression format, commonly used for photographic images, which is lossy in nature. That means there is some degree of trade-off between image quality and the extent to which the photographs are reduced in size – but it also means that when such pictures are edited, there is additional loss of quality because they are first decompressed by the editing software, and then compressed again when saved back out as JPEG files.

Jpegtran, however – and therefore TranJPEG – is designed to manipulate JPEG images in a number of ways without first decompressing them, which means the transformations offered by the utility are lossless – the only loss in quality comes when the pictures are saved as JPEGs in the first place.

The transformations provided by the software are rotation (through 90, 180 and 270 degrees, as well as AUTO-rotation, subject to certain exif data being present) flipping (horizontally and vertically), transposing, and ‘smart-scaling’ (up by a factor of two, or down by two, four or eight) – though it should be noted that there are not many RISC OS applications that understand and can display a smart-scaled image.

Version 1.00, announced in January, was the first release of TranJPEG, and it was followed by version 1.10 at the end of the month and version 1.20 a couple of weeks later. The changes in the two later versions include allowing the destination directory to be set by drag and drop, and the addition of the smart-scale transformation, which wasn’t present in the first release. The most recent release also saw the jpegtran binary updated to the latest version.