In this article, we would discuss how to optimize/compress jpeg files in Ubuntu using command-line utility jpegoptim. There could be various reasons why you may want to optimize your jpeg files. For instance, you could be uploading photos to a cloud storage, sharing it on social media networks etc. The utility would also be useful for those who may want to upload jpeg files on their websites. This will reduce the time required to upload jpeg files and at the same time will lead to substantial reduction in bandwidth needed.
Install jpegoptim in Ubuntu
jpegoptim package is available in standard Ubuntu repository. But, installation will require you to have access to superuser privileges. In case, you don’t have one then contact your System Administrator for assistance. Thereafter, run the following in terminal –
sudo apt update sudo apt install jpegoptim
Optimize/Compress JPEG files
Before performing any operations using the utility jpegoptim, you should know that all operations will be performed on original file(i.e. input file) by default. If you want to preserve your original file then, you need to use the option --dest
which is path to the directory where the optimized file will stored. This will leave the original file as it is. We will explain --dest
option in subsequent examples.
The syntax for the utility is –
jpegoptim [options] [file_name]
To optimize your image file quality-wise and save it to a directory leaving your original file intact, use the following command with options --dest
and --max
jpegoptim --dest=directory_path --max=<quality> file_name.jpeg
for instance,
jpegoptim --dest=/home/ --max=75 file_name.jpeg
You can provide maximum quality values for an image between 0 and 100. --max
option disables the lossless optimization mode.
Also, to optimize an image file size-wise we have to use the --size
option –
jpegoptim --dest=directory_path --size=<size> file_name.jpeg
where, <size> could be provided in Kilobytes or as a percentage of the image size.
for instance,
jpegoptim --dest=/home/ --size=500 file_name.jpeg jpegoptim --dest=/home/ --size=50% file_name.jpeg
In above example, the --size
=500 reduces the file to a size of 500 KB. And, --size
=50% reduces the size of our image file to half.
In case you are using --dest
option and the file already exists then you would have to use -o
or --overwrite
option to overwrite the existing file.
Note: If you are unable to reduce the file size to the required size then, you need to run the command again on the same file.
Apart from optimizing a jpeg file, we can do perform other operations too like striping all markers, preserving file permissions, preserving file modification times, etc. All these and other options will be discussed in brief.
--preserve
preserves file modified time,
-P
or --preserve-perms
preserves file permissions,
--strip-all
is used to strip all markers except Comment and Exif / IPTC / PhotoShop / ICC / XMP markers,
--strip-none
to preserve all markers except JFIF (APP0) & Adobe (APP14)
--strip-exif
, --strip-iptc
,--strip-icc
, --strip-xmp
to strip respective markers as mentioned in the option.
In conclusion, we have discussed how to optimize/compress jpeg files in Ubuntu using package jpegoptim.