Q: Which format should I pick for the web?
WebP for almost everything — universal modern-browser support and 25–35% smaller than equivalent-quality JPEG. AVIF if you ship a <picture> block with a WebP/JPEG fallback (saves another 15–20%). PNG only for sharp UI graphics with transparency. SVG for vector icons. JPEG remains a safe fallback for legacy clients.
Q: Does conversion always reduce quality?
Converting to lossless formats (PNG, BMP) preserves every pixel. Converting to lossy formats (JPEG, WebP lossy, AVIF) re-encodes with whatever quality setting you pick — at 80+ you generally cannot tell. Converting from JPEG to PNG locks in the existing artifacts but adds none of its own. Converting PNG → JPEG flattens transparency and adds new lossy artifacts.
Q: Why did my PNG with transparency lose its background?
You converted to JPEG, which has no alpha channel. The encoder filled the transparent pixels with a solid color (black or white). To preserve transparency, pick PNG, WebP, or AVIF as the output format instead.
Q: Is my image uploaded anywhere?
No. Conversion runs entirely in your browser via the Canvas API encoders. You can confirm in DevTools Network — the operation produces zero outbound requests. Privacy-sensitive screenshots and proprietary assets are safe to convert here.
Q: Can I convert to AVIF here?
Browser Canvas encoders currently expose only JPEG, PNG, WebP, and BMP via canvas.toBlob(). For AVIF output, use Squoosh (WASM-compiled libavif) or Sharp / libvips on the server. Both keep the same client-side pipeline if privacy matters.
Q: Is SVG safe to handle from untrusted sources?
Not by default. SVG can carry inline <script> and event handlers that execute when rendered same-origin or opened directly in a browser. For untrusted SVG, either sanitize with DOMPurify, render only via an <img> tag (which sandboxes scripts), or serve from a separate origin with a strict Content Security Policy.