95

I'm using ubuntu 12.04. I've installed libwebp2 & libwebp-dev

So far, no example found on the net of converting webp to jpg.

Some webp files can easily converted by using imagemagick with command

convert file.webp file.jpg

but lots of webp files cannot be converted and give error:

convert: no decode delegate for this image format `file.webp' @ error/constitute.c/ReadImage/532.
convert: missing an image filename `file.jpg' @ error/convert.c/ConvertImageCommand/3011.

--------added

This is the file: http://www.filedropper.com/file_144

  • Could you post some of the files that cannot be converted so we can have a go? – terdon Mar 30 '13 at 17:39
  • Any errors when ImageMagick fails to convert? – dartonw Mar 30 '13 at 17:44
  • @dartonw Error has been updated – apasajja Mar 30 '13 at 17:51
  • 2
    Does convert -list format contain WebP? – peterph Mar 30 '13 at 22:24
  • 1
    convert -list format dont have WebP – apasajja Mar 31 '13 at 4:50

10 Answers 10

129

Google already provided the tool to decode webp images in the libwebp package, your uploaded file works on Arch.

dwebp file.webp -o abc.png

For the encoding tool, check the cwebp command.

In Ubuntu you can install the tools with:

sudo apt install webp

On RHEL/CentOS:

 yum install libwebp libwebp-tools

And you might consider using this online tool.

| improve this answer | |
  • 10
    Unfortunately dwebp only converts webp to png, but not to jpg. – rumpel Oct 29 '13 at 8:30
  • 2
    @rumpel thx, it failed to open the .jpg, but when I put .png it worked! – Aquarius Power Dec 8 '14 at 3:49
  • 3
    In 14.04 I needed to install the package webp it was not available until I installed that. I was confused because I had install all the libwebp and libweb-dev packages. – TryTryAgain May 5 '15 at 17:29
  • 3
    Use dwebp for webp->png, and then convert for png->jpg. Using pipe. dwebp 1.webp -o - | convert - 1.jpg – steve Jul 15 '16 at 17:57
  • 2
    For windows use the following command for %f in (*.webp) do dwebp.exe "%f" -o "%~nf.png" – Matija Grcic Nov 18 '16 at 18:21
46

ffmpeg can do this. Useful if you already have ffmpeg. No need for installing other tools.

Simply:

ffmpeg -i file.webp out.png
| improve this answer | |
  • It works, but the png is 11x larger. – RonJohn Jul 26 '19 at 14:30
  • 1
    it works. It is good for jpg image, but png format is very large. – mahfuz Nov 10 '19 at 8:46
  • 1
    This worked for me, using dwebp produced broken jpegs on the images I did. – Jonno_FTW Nov 27 '19 at 0:58
24

Convert all webp files within a directory

find ./ -name "*.webp" -exec dwebp {} -o {}.png \;

Note: dwebp is in the libwebp package

| improve this answer | |
  • 6
    For Ubuntu 16.04 I needed to install it with sudo apt-get install webp. – PhoneixS Aug 18 '17 at 17:58
  • Dont know if ment as a feature or a bug, but all the files will be saved as file.webpg.png instead of simply file.png – Felix Rosén Jul 9 '19 at 20:35
  • It's a feature for simplicity... I have a image hashing algorithm which automatically renames images, so I intended to rename the files using that. – Jeff McHale Jul 11 '19 at 1:00
9

From the directory containing the webp files:

for x in *.webp; do ffmpeg -i "$x" "${x%.webp}.jpg"; done
| improve this answer | |
  • 5
    use ${x%.webp}.jpg instead of $x.jpg to remove webp in target filename (stolen from stackoverflow.com/a/17844019/146745) – andrej Oct 25 '18 at 13:19
  • 1
    To piggyback on @andrej 's comment: if the source file has spaces in it, you need to add quotes: for x in *.webp; do ffmpeg -i "$x" "${x%.webp}.jpg"; done – Curtis Gibby Feb 21 at 15:38
2

Use dwebp for webp->png, and then convert for png->jpg. Using pipe.

dwebp 1.webp -o - | convert - 1.jpg
| improve this answer | |
1

There is another online tool available here which can help you on this:

but if you want a local tool, you can use this one:

and use it like this:

1) chmod a+x webpconv

2) ./webpconv -format PNG <YOUR_WEBP_FILE>.webp

The overall structure is like this:

webpconv [-output_dir dir] [-format format] [-quality quality] input_file(s)

Example) To convert a .png image to WebP with a quality of 90 you would enter:

webpconv -quality 90 /home/user/image_name.png

and to convert a WebP file to a PNG one:

webpconv -format PNG /home/user/image_name.webp

| improve this answer | |
0

To convert multiple jpg to webp, using cwebp:

find ./ -name "*.jpg" -exec cwebp -q 70 {} -o {}.webp \

Thunar Custom Action:

for file in %F; do cwebp "$file" -o "${file%%.*}".webp; done

Thunar Custom Action, moving webp images to subfolder:

mkdir %d/webp && cd %d; for file in %N; do cwebp "$file" -o "webp/${file%%.*}".webp; done

Cwebp's default quality setting is 75.

| improve this answer | |
0

for x in ls *.webp; do ffmpeg -i $x ${x%.webp}.jpg; done which is solution stolen from Byram Sewell and Jeff Bowman https://stackoverflow.com/a/17844019/146745

| improve this answer | |
-1

I found this method faster for my 1 time need.

  1. Take screenshot with webp image open in chrome.
  2. Paste into paint program.
  3. Crop and save.
| improve this answer | |
  • 8
    The questioner was looking for a command line solution... – jasonwryan Jun 10 '14 at 4:06
  • 1
    I think it could be made as a command line by using Shutter and taking a screenshot of a window without window decorations, all in a script; could be fun to code :) – Aquarius Power Aug 11 '14 at 22:30
-1

install the webp package with sudo apt install webp, after that it should work.

| improve this answer | |
  • why the downvote? this exact solution got incorporated into the accepted answer after I gave mine – törzsmókus Oct 28 at 11:29

Not the answer you're looking for? Browse other questions tagged or ask your own question.