Webp image formats are natively supported on reputable web browser platforms like Google Chrome, Opera, Brave, Edge, Safari, and Firefox. So what makes Webp image file format so unique? The lossless images associated with WebP image file formats tend to be 26% smaller than PNG images and 25%-34% smaller than JPEG images. They also have impeccable support for transparency (alpha channel).
For one reason or another, you might need to convert raw WebP image files to PNG and/or JPEG image file formats. It could be for compatibility reasons with a project you are working on or for personal curiosity.
This article is here to investigate the possible approaches to achieving the latter stated objective.
Problem Statement
Consider the existence of the following raw WebP image file on a Linux operating system environment. We can further use the ls command to determine the file size properties associated with this WebP image file.
$ ls -l image.webp
On estimate, the size of the image file represented by the above screen capture is roughly 30.3 KB. Therefore, since WebP image files are estimated to be much smaller in comparison to PNG and JPEG image files, converting them to these image file formats should result in relatively bigger image file sizes.
WebP libwebp Library
The WebP image file format is associated with libwebp which is a lightweight encoding and decoding library. Also, this library is accompanied by two very useful command-line tools namely cwebp and dwebp.
In summary, the cwebp command-line tool is effective in compressing and inputting image file to a WebP file. On the other hand, the dwebp command-line tool is the complete opposite of the cwebp tool. It generally compresses an input WebP file to an image file.
In this article, we will be more interested in the dwebp command-line tool to successfully convert our sample raw WebP image file to PNG and JPEG image files.
Installing libwebp Library on Linux
In order to use the dwebp tool to convert WebP images to PNG and JPEG images, we need to install the libwebp library on our Linux systems since it is pre-packaged with this tool.
$ sudo apt install webp [On Debian, Ubuntu and Mint] $ sudo yum install libwebp [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a media-libs/libwebp [On Gentoo Linux] $ sudo pacman -S libwebp [On Arch Linux] $ sudo zypper install libwebp [On OpenSUSE]
As per the man page, the standard syntax for using dwebp tool is:
$ dwebp [options] input_file.webp -o final_image_file.image_extension
You will also discover that the manual page of dwebp tool is associated with multiple useful command options like -crop
for cropping the final image and -resize/-scale
for determining the width and height of the final image.
Converting WebP Image to PNG in Linux
To convert our raw WebP image to PNG image, implement:
$ dwebp image.webp -o final.png
In terms of size comparison, the PNG file should be bigger:
$ ls -l final.png
Converting WebP Image to JPEG in Linux
To convert our raw WebP image to JPEG image, implement:
$ dwebp image.webp -o final.jpeg
The JPEG file should also be bigger that the original WebP file.
$ ls -l final.jpeg
We have successfully demonstrated how to use the libwebp WebP library to convert WebP images to PNG and/or JPEG images via the dwebp command-line tool.
Hope this article guide was useful. Feel free to leave a comment or feedback.
Thanks for this, worked fine for converting to PNG.
However, dwebp version 0.6.1 on Ubuntu Linux 20.04.4 LTS: did not actually convert to JPG format. It produces the output file with the correct extension, but the
-o
option produces a PNG file format.Other formats such as BMP and tiff can be explicitly specified as an option before the
-o
(-tiff, -BMP, etc…)Yeah, that’s actually true. Thanks!