In Linux, we can convert image file format from PNG to JPG and JPG to PNG with some command line tools. It will help compressing the image size and load the images more quicker.
There are different command line tools that can be used for such purposes. Some of those tools are Convert which is a member of a ImageMagick tool. The Mogrify command can also be used to convert such image formats.
First, install the required package by using the following command:
$ sudo apt install imagemagick
Here, we are going to use convert command-line tools. The basic syntax for convert command is as follows:
$ convert [input-option] input-file [output-option] output-file
Different method for converting PNG to JPG and JPG to PNG are discussed below:
How to convert PNG to JPG with “ls” and “xargs” commands
Here, “ls” command will list all the jpg images and xargs help to build and execute convert commands.
To convert JPG to PNG
$ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
To convert PNG to JPG
$ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'
Here,
-1 = This flag notify “ls” to list 1 image per line
-n = It is used to specify the maximum number of arguments. Here 1 is used.
-c = It tells bash to run the provided command.
${0%.jpg}.png = It is used to set the name of the newly converted image and % sign is used to remove the old file extension.
You can notice that we have converted png to jpg format successfully with the above command. You can also convert jpg to png by using the above command.
How to convert PNG to JPG with Shell Script
We are going to write a small script to change png to jpg and vice versa. Such a script will look more clear. For example:
#!/bin/bash for image in *.png; do convert "$image" "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" done exit 0
Now save it as test.sh and run the command as below to make it executable. Now go to your directory where your images are saved and run the script.
You can also convert from jpg to png with a small change on the above script.
$ sudo chmod +x test.sh
$ ./test.sh
You can notice that we have converted png to jpg format successfully with the above command. You can also convert jpg to png too by interchanging .png and .jpg extensions.
How to convert JPG to PNG by reducing image size
To convert the image format from jpg to png by reducing it’s image size, run the following command.
For example:
$ convert test.jpg -resize 40% test.png
Here, you can notice that we have converted jpg to png with reduced image size.
Conclusion:
In this article, we learned how to convert image extension from png to jpg and vice versa by using the useful command line tools such as convert command line tool. Thank you!