Convexy

Why can't most iPhone apps convert to WebP?

Because iOS has no WebP encoder. Apple's imaging framework, ImageIO, learned to read WebP in iOS 14 — but it never learned to write it. An iPhone app can only produce a WebP if it bundles its own encoder, or uploads your image to a server that has one.

The gap, precisely

When an iOS app wants to write an image file, it asks ImageIO for the list of formats it is allowed to write, via a function called CGImageDestinationCopyTypeIdentifiers(). The system answers with a list of type identifiers: JPEG, PNG, TIFF, HEIC, GIF, BMP, and a handful of others.

org.webmproject.webp — the identifier for WebP — is not in that list. There is no flag to add it and no setting to enable it. Every app on the platform gets the same answer.

Reading is a different story. Since iOS 14, ImageIO has decoded WebP happily, which is why Safari renders WebP images, Photos previews them, and Files shows you a thumbnail. People reasonably conclude that if the phone can display a WebP, it can make one. It cannot. Decode and encode are separate capabilities, and Apple shipped exactly one of them.

This is why the same app behaves differently on Android. Android can encode WebP natively — it has a built-in Bitmap.CompressFormat.WEBP_LOSSY (and a lossless variant) and has had WebP output for years. So a cross-platform converter can genuinely offer "convert to WebP" on Android and genuinely not offer it on iPhone, using the same codebase. That asymmetry is a platform fact, not the developer being lazy on one side.

Why Apple left it out

Nobody outside Apple can tell you for certain, and we are not going to invent a reason. What can be observed is that WebP is Google's format, born out of the WebM project, and that Apple has spent the last decade backing a different horse: HEIC for photos on the device, and more recently AVIF, which iOS can also decode. Apple has never been in a hurry to make its platform a good citizen of Google's image ecosystem.

Unlike MP3, there was never a patent obstacle here. libwebp — Google's reference implementation — has always been BSD-licensed and free for anyone to ship, including in a closed-source commercial app. The encoder was there for the taking the entire time. Apple did not take it.

So how do the apps that DO offer WebP manage it?

The same two roads as MP3, and for exactly the same reason.

Road one: bundle libwebp. The app compiles Google's encoder into its own binary and runs it on your device, bypassing the missing system capability entirely. It costs some app size and some build engineering, and it means the conversion is genuinely local.

Road two: upload the image. The app posts your file to a server running cwebp or ImageMagick and gets a WebP back. Easier to build, works identically on every platform, and means your photo has been copied onto hardware you do not control.

An app that offers WebP output on iPhone is on one of these two roads. There is no third option, because the operating system does not provide one.

The Airplane Mode test. Switch on Airplane Mode and try the conversion. If a WebP comes out, the app has its own encoder. If it stalls or errors, your image was on its way to a server. Twenty seconds, no trust required.

Do you actually need WebP?

Worth asking honestly, because the answer is often no.

WebP exists to make web pages load faster. It is meaningfully smaller than JPEG or PNG at comparable quality, it supports transparency and animation in a single format, and it is supported by every browser that matters. If you are publishing images to a website, uploading to a CMS that asks for WebP, or hitting a form that rejects everything else, WebP is exactly right and there is no substitute.

If you are not doing that — if you just want a smaller photo to keep or send — WebP is a strange choice. HEIC is smaller still and is what your phone already shoots. AVIF beats both on compression. And a plain JPEG will be opened without complaint by literally everything, which WebP still cannot quite claim outside the browser: plenty of desktop photo software, older Office versions, printers and upload forms will look at a .webp and shrug.

Use WebP for the web. For everything else, there is usually a better answer.

Lossy or lossless — WebP is both

A detail that confuses people: WebP is not one thing. It has a lossy mode (derived from VP8 video coding, the usual choice, competes with JPEG) and a lossless mode (competes with PNG and generally beats it, typically by 20-30% on the same image).

This matters because of what you feed it. Converting a JPEG to lossy WebP is a second lossy generation and costs you quality — see does converting a file lose quality. Converting a PNG to lossless WebP costs you nothing at all: same pixels, smaller file. If your tool does not tell you which mode it is using, it is making that decision for you.

What Convexy does. Convexy takes road one: it bundles Google's libwebp (BSD-licensed) and encodes on your device. That is why WebP conversion works in Airplane Mode. Convexy also reads WebP, so WebP-to-JPG and WebP-to-PNG work in both directions.

Common questions

Can an iPhone open and view WebP files?

Yes. Since iOS 14, WebP decoding is built into the system, so Safari, Photos, Files and Quick Look all display WebP images without any extra app. Only the reverse — creating a WebP — is missing.

Why does my Android phone convert to WebP when my iPhone won't?

Because Android ships a WebP encoder and iOS does not. Android's bitmap API has a native WEBP compression format built in. The same cross-platform app can therefore honestly offer WebP output on Android and not on iPhone unless it bundles its own encoder.

Is WebP better than JPG, HEIC or AVIF?

Better than JPEG on compression, and it can do transparency and animation, which JPEG cannot. HEIC is generally smaller than WebP, and AVIF is smaller still. But neither HEIC nor AVIF has WebP's universal browser support. WebP wins on the web; HEIC and AVIF win on the device.

Is WebP lossy or lossless?

Both — they are two different modes of the same format. Lossy WebP competes with JPEG; lossless WebP competes with PNG and is usually 20-30% smaller than the equivalent PNG. Converting a PNG to lossless WebP throws nothing away. Converting a JPEG to lossy WebP is a second generation of loss.

How do I know whether a converter app is uploading my images to make WebP?

Turn on Airplane Mode and convert. If it succeeds, the encoder is on your device. If it fails, the image was being sent to a server. Because iOS provides no WebP encoder, those are the only two possibilities.

Does Convexy need the internet to convert to WebP?

No. It bundles libwebp and encodes locally, so it works with the network off. It reads WebP as well, so converting WebP to JPG or PNG works too.