dwebp
Stay organized with collections
Save and categorize content based on your preferences.
Name
dwebp
-- Decompress a WebP file to an image file
Synopsis
dwebp [options] input_file.webp
Description
dwebp
decompresses WebP files into PNG, PAM, PPM or PGM images.
Note: Animated WebP files are not supported.
Options
The basic options are:
-h
- Print usage summary.
-version
- Print the version number (as major.minor.revision) and exit.
-o string
- Specify the name of the output file (as PNG format by default). Using "-"
as output name will direct output to 'stdout'.
-- string
- Explicitly specify the input file. This option is useful if the input
file starts with an '-' for instance. This option must appear
last
.
Any other options afterward will be ignored. If the input file is "-",
the data will be read from stdin instead of a file.
-bmp
- Change the output format to uncompressed BMP.
-tiff
- Change the output format to uncompressed TIFF.
-pam
- Change the output format to PAM (retains alpha).
-ppm
- Change the output format to PPM (discards alpha).
-pgm
- Change the output format to PGM. The output consists of luma/chroma
samples instead of RGB, using the IMC4 layout. This option is mainly for
verification and debugging purposes.
-yuv
- Change the output format to raw YUV. The output consists of
luma/chroma-U/chroma-V samples instead of RGB, saved sequentially as
individual planes. This option is mainly for verification and debugging
purposes.
-nofancy
- Don't use the fancy upscaler for YUV420. This may lead to jaggy edges
(especially the red ones), but should be faster.
-nofilter
- Don't use the in-loop filtering process even if it is required by the
bitstream. This may produce visible blocks on the non-compliant output,
but it will make the decoding faster.
-dither strength
- Specify a dithering strength between 0 and 100. Dithering is a
post-processing effect applied to chroma components in lossy compression.
It helps by smoothing gradients and avoiding banding artifacts.
-nodither
- Disable all dithering (default).
-mt
- Use multi-threading for decoding, if possible.
-crop x_position y_position width height
- Crop the decoded picture to a rectangle with top-left corner at
coordinates (
x_position
, y_position
) and size width
x height
. This
cropping area must be fully contained within the source rectangle. The
top-left corner will be snapped to even coordinates if needed. This option
is meant to reduce the memory needed for cropping large images. Note: the
cropping is applied before any scaling.
-flip
- Flip decoded image vertically (can be useful for OpenGL textures for
instance).
-resize width height
- Rescale the decoded picture to dimension
width
x height
. This option is
mostly intended to reducing the memory needed to decode large images, when
only a small version is needed (thumbnail, preview, etc.). Note: scaling
is applied after cropping.
If either (but not both) of the width
or height
parameters is 0
,
the value will be calculated preserving the aspect-ratio.
-v
- Print extra information (decoding time in particular).
-noasm
- Disable all assembly optimizations.
Bugs
Examples
dwebp picture.webp -o output.png
dwebp picture.webp -ppm -o output.ppm
dwebp -o output.ppm -- ---picture.webp
cat picture.webp | dwebp -o - -- - > output.ppm
Authors
dwebp
is part of libwebp
, and was written by the WebP team.
The latest source tree is available at
https://chromium.googlesource.com/webm/libwebp/
This manual page was written by Pascal Massimino pascal.massimino@gmail.com,
for the Debian project (and may be used by others).
Output file format details
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-07 UTC.
[null,null,["Last updated 2025-08-07 UTC."],[[["\u003cp\u003e\u003ccode\u003edwebp\u003c/code\u003e is a command-line tool used to decompress WebP image files into various formats like PNG, PAM, PPM, or PGM.\u003c/p\u003e\n"],["\u003cp\u003eUsers can specify output file names, formats, and utilize options such as cropping, resizing, dithering, and multi-threading for customized decompression.\u003c/p\u003e\n"],["\u003cp\u003eWhile it supports several output formats and advanced options, \u003ccode\u003edwebp\u003c/code\u003e currently doesn't handle animated WebP files.\u003c/p\u003e\n"],["\u003cp\u003eBasic usage involves specifying the input WebP file and optionally the desired output file name and format using provided options.\u003c/p\u003e\n"],["\u003cp\u003eFor detailed usage, bug reporting, or contributing to the project, refer to the provided links and documentation.\u003c/p\u003e\n"]]],["`dwebp` decompresses WebP files into various image formats like PNG, BMP, TIFF, PAM, PPM, or PGM. Key actions include specifying the input WebP file and output file name, choosing the output format, and using options to modify the decoding process. You can crop, resize, flip, or apply dithering, disable in-loop filtering, or use multi-threading. It supports reading from standard input and writing to standard output and is mainly for image verification.\n"],null,["# dwebp\n\nName\n----\n\n`dwebp` -- Decompress a WebP file to an image file\n\nSynopsis\n--------\n\n`dwebp [options] input_file.webp`\n\nDescription\n-----------\n\n`dwebp` decompresses WebP files into PNG, PAM, PPM or PGM images.\nNote: Animated WebP files are not supported.\n\nOptions\n-------\n\nThe basic options are:\n\n`-h`\n: Print usage summary.\n\n`-version`\n: Print the version number (as major.minor.revision) and exit.\n\n`-o string`\n: Specify the name of the output file (as PNG format by default). Using \"-\"\n as output name will direct output to 'stdout'.\n\n`-- string`\n: Explicitly specify the input file. This option is useful if the input\n file starts with an '-' for instance. This option must appear `last`.\n Any other options afterward will be ignored. If the input file is \"-\",\n the data will be read from stdin instead of a file.\n\n`-bmp`\n: Change the output format to uncompressed BMP.\n\n`-tiff`\n: Change the output format to uncompressed TIFF.\n\n`-pam`\n: Change the output format to PAM (retains alpha).\n\n`-ppm`\n: Change the output format to PPM (discards alpha).\n\n`-pgm`\n: Change the output format to PGM. The output consists of luma/chroma\n samples instead of RGB, using the IMC4 layout. This option is mainly for\n verification and debugging purposes.\n\n`-yuv`\n: Change the output format to raw YUV. The output consists of\n luma/chroma-U/chroma-V samples instead of RGB, saved sequentially as\n individual planes. This option is mainly for verification and debugging\n purposes.\n\n`-nofancy`\n: Don't use the fancy upscaler for YUV420. This may lead to jaggy edges\n (especially the red ones), but should be faster.\n\n`-nofilter`\n: Don't use the in-loop filtering process even if it is required by the\n bitstream. This may produce visible blocks on the non-compliant output,\n but it will make the decoding faster.\n\n`-dither strength`\n: Specify a dithering strength between 0 and 100. Dithering is a\n post-processing effect applied to chroma components in lossy compression.\n It helps by smoothing gradients and avoiding banding artifacts.\n\n`-nodither`\n: Disable all dithering (default).\n\n`-mt`\n: Use multi-threading for decoding, if possible.\n\n`-crop x_position y_position width height`\n: Crop the decoded picture to a rectangle with top-left corner at\n coordinates (`x_position`, `y_position`) and size `width` x `height`. This\n cropping area must be fully contained within the source rectangle. The\n top-left corner will be snapped to even coordinates if needed. This option\n is meant to reduce the memory needed for cropping large images. Note: the\n cropping is applied *before* any scaling.\n\n`-flip`\n: Flip decoded image vertically (can be useful for OpenGL textures for\n instance).\n\n`-resize width height`\n: Rescale the decoded picture to dimension `width` x `height`. This option is\n mostly intended to reducing the memory needed to decode large images, when\n only a small version is needed (thumbnail, preview, etc.). Note: scaling\n is applied *after* cropping.\n If either (but not both) of the `width` or `height` parameters is `0`,\n the value will be calculated preserving the aspect-ratio.\n\n`-v`\n: Print extra information (decoding time in particular).\n\n`-noasm`\n: Disable all assembly optimizations.\n\nBugs\n----\n\n- Please report all bugs to our issue tracker: \u003chttps://issues.webmproject.org\u003e\n\n- Patches welcome! See this page to get started: \u003chttps://www.webmproject.org/code/contribute/submitting-patches/\u003e\n\nExamples\n--------\n\n dwebp picture.webp -o output.png\n dwebp picture.webp -ppm -o output.ppm\n dwebp -o output.ppm -- ---picture.webp\n cat picture.webp | dwebp -o - -- - \u003e output.ppm\n\nAuthors\n-------\n\n`dwebp` is part of `libwebp`, and was written by the WebP team.\nThe latest source tree is available at\n\u003chttps://chromium.googlesource.com/webm/libwebp/\u003e\n\nThis manual page was written by Pascal Massimino [pascal.massimino@gmail.com](mailto:pascal.massimino@gmail.com),\nfor the Debian project (and may be used by others).\n\n**Output file format details**\n\n- PAM: \u003chttp://netpbm.sourceforge.net/doc/pam.html\u003e\n- PGM: \u003chttp://netpbm.sourceforge.net/doc/pgm.html\u003e\n- PPM: \u003chttp://netpbm.sourceforge.net/doc/ppm.html\u003e\n- PNG: \u003chttp://www.libpng.org/pub/png/png-sitemap.html#info\u003e"]]