JPEG – JPEGs images were designed to make detailed photographic images as small as possible by removing information that the human eye won’t notice. So the size of the image is pretty less compared to that of PNG. However in JPG image, you cannot store alpha transparency information of the image. So, if transparency information isn’t required, JPG is the most scalable solution.
PNG – PNG is a great format that combines Lossless encoding with Direct color (thousands of colours, just like JPEG). It supports alpha transparency. A photograph saved as a PNG will likely be at least 5 times larger than an equivalent JPEG image, with very little improvement in visible quality. So, if file size isn’t a problem and you want the best possible quality then PNG is good.
In our case, most images are used to be shown in website. So, smaller the size, better. So we store most of the big images in JPG format by converting PNG to JPG using PIL (Python Image Library)
PNG to JPEG Conversion
The Python Imaging Library, or PIL for short, is one of the core libraries for image manipulation in Python. Unfortunately, its development has stagnated, with its last release in 2009.
Luckily for you, there’s an actively-developed fork of PIL called Pillow – it’s easier to install, runs on all operating systems, and supports Python 3.
The most important class in the Python Imaging Library is the
Image class, defined in the module with the same name. You can create instances of this class in several ways; either by loading images from files, processing other images, or creating images from scratch.
While converting from PNG to JPG, we create a new image file in jpeg format, read the png image, then paste the image read to the newly created blank jpg image. Then the jpg image file is saved. This is the basic idea behind conversion from PNG to JPG.
As we can see, while saving a jpg image we can mention the quality that we want it to be saved in. So if we want, we can take the quality input for conversion from the admin and then accordingly decide the quality while changing from PNG to JPG.
This is an important feature because most large images such as background, header background, etc. are already of a huge size and operations on them and saving in PNG upscales the size a lot. So, it is always better to store such images in JPG format to make your website more scalable so that images can be loaded faster.