WebP is a modern image format developed by Google to shrink file sizes dramatically — especially for web use — while preserving as much visual quality as possible. It supports both lossy and lossless compression, and in many cases, can outperform JPG and PNG in terms of file size.
But if you've ever saved an image as WebP in GIMP or another editor and noticed fingerpainting artifacts, color bands, or blurred details, you're not alone.
To understand why, we need to look at how WebP actually compresses images.
🔍 How WebP Compression Works
WebP is based on the same underlying technology as Google’s VP8 video codec. It treats your image like a single video frame — and compresses it using block-based prediction.
At a high level:
- The image is divided into 16×16 pixel macroblocks
- Each block is encoded using:
- Intra-block prediction (guessing pixels based on neighboring areas)
- Discrete Cosine Transform (DCT) (similar to JPEG, for frequency encoding)
- Quantization (removing fine detail based on a quality level)
- Redundant data is removed using entropy coding and stored compactly
✅ Pros
- Very efficient at compressing large, simple, or smooth areas
- Better than JPEG at preserving edges and fine detail at mid-quality levels
- Supports alpha transparency (unlike JPG)
- Can be either lossy or lossless
⚠️ Cons
- Becomes very lossy and “muddy” at low quality settings
- Not all encoders are equal (GIMP’s WebP export often performs worse than cwebp)
- Slower to encode than JPG or PNG, especially at higher settings
🎨 Why Do WebP Files Look “Fingerpainted” at Low Quality?
You’re seeing a classic result of aggressive block quantization:
- WebP uses macroblocks — 16×16 pixel chunks
- At high quality (80–100%), the encoder retains most frequency and prediction detail
- Around 50–60% quality, block boundaries become more noticeable
- Below 50%, especially 40% and under, the encoder starts:
- Merging blocks with similar tone
- Dropping fine detail
- Smoothing gradients into blobs
This is what causes:
- Skin smoothing
- Detail loss in grass, fabric, or hair
- Color bands instead of smooth gradients
- Blocky "tiles" around hard edges
The GIMP export tends to exaggerate this effect, possibly due to:
- Outdated or simplified encoder settings
- Reduced dithering or fewer prediction modes enabled
- A quality curve that drops sharply below 50, unlike
cwebp
, which drops more gradually
🛠️ Lossy vs Lossless WebP
Feature | Lossy WebP | Lossless WebP |
---|---|---|
Compression | Predictive + DCT | Prediction + LZ77 + Huffman |
Quality setting | 0–100 | Not applicable |
Alpha support | Yes | Yes |
Typical use | Photos, web | Icons, graphics |
Lossless WebP is surprisingly good — it uses advanced entropy coding and can outperform PNG on many images (especially flat graphics). But it's slower to encode and decode.
🔧 Tips for Better WebP Compression
Use Case | Suggested Settings |
---|---|
Web photography | Quality 75–85 (visually lossless, much smaller than JPG) |
Archival (lossy) | Quality 90+, or don’t use WebP at all |
Line art, icons | Use lossless WebP instead of PNG |
Gradients, skies | Avoid quality < 60 or banding will be visible |
📸 Avoid re-saving the same WebP repeatedly — like JPG, it’s a lossy format and quality loss is cumulative.
🧪 Comparing Export Tools
Not all WebP encoders are equal. Here's how some common tools behave:
Tool | Notes |
---|---|
GIMP | Often over-compresses below 75%, limited control |
Photoshop (with plugin) | Better, but still basic |
ImageMagick | Uses libwebp — good results, CLI control |
cwebp (Google CLI) | Best control and quality-to-size ratio |
Squoosh.app | Google’s browser encoder — excellent visual feedback |
💡 Real-World Advice
- Use WebP for final exports, not in-progress edits
- If you're exporting for web use, run some tests at quality 80–85 and compare to JPG
- If you see smearing or artifacts below quality 60 — it’s not just you. That’s WebP doing its job (aggressively)
🧠 Summary
WebP is a powerful image format that often beats JPG and PNG — but like any tool, it has tradeoffs. Its block-based compression means you can save a lot of space, but go too far and you’ll start to see what you called “fingerpainting.”
Understanding how WebP works — and using the right encoder — lets you get the benefits without sacrificing quality.
Next time you export from GIMP and get a blurry mess at quality 49% — now you know why. And now you can fix it.