Free · no sign-up · runs offline
Favicon & app icon generator
One image in, the whole icon set out: favicon.ico, every PNG size a browser or phone asks for, iOS home-screen icons, Android adaptive layers, Windows tiles — plus the exact <head> tags and a web manifest. Your file is processed in the browser and never uploaded.
Build your icon package
Upload one image. Everything below is computed on your device — nothing is sent anywhere.
Your icon set
Shown scaled down. The PNG inside the ZIP is full 512 px, radius and background already baked in.
Every file in the package
The small sizes are painted at true pixel size, so a 16 px tile below is exactly 16 px across. File names are the conventional ones — unzip straight into your web root.
Ready-to-paste head tags
How it works
Four steps, all inside your browser tab.
PNG, JPG, WEBP or SVG up to 5 MB and 4096×4096. It is decoded locally and centre-cropped to a square.
Slide the corner radius and pick a background. Both are baked into every file at draw time — even the ones inside favicon.ico.
The grid paints each size at real pixels, and the tab mock shows the 16 px result, so you can see legibility before you ship it.
Grab the ZIP (files sit at the root) and drop the head snippet into your template. No account, no watermark.
Everything in the box
favicon.ico packs 16, 32 and 48 px PNG payloads; separate PNGs cover 16 through 512, plus apple-touch-icon at 180, Android Chrome at 192/512 and mstile at 150.
The foreground art is inset into the 66% safe zone on a transparent 512 px canvas, with a matching solid background layer — no clipped logos on Pixel launchers.
iOS and Windows render transparency poorly, so those two files always get a solid background, even when you keep transparency elsewhere.
Large art is halved repeatedly before the final step, so the tiny tab icon stays crisp instead of turning into a grey smudge.
site.webmanifest, browserconfig.xml and snippet.html are generated from the same settings — the theme colour always matches the icons you exported.
There is no upload step and no server processing. Once the page is loaded, everything keeps working with the network switched off.
FAQ
Is my image uploaded anywhere?
No. The file is read with the browser's own decoder, drawn onto a canvas and zipped in JavaScript. Nothing is transmitted, and the tool keeps working offline.
My image isn't square — what happens?
It is centre-cropped to the largest square that fits. Put the important part of the artwork in the middle, and check the true-size previews before you download.
Why is my SVG rejected or blank?
SVGs without intrinsic width/height, or ones that reference external files and fonts, can rasterise to nothing. The tool detects an all-transparent render and asks you to export a PNG instead.
Should I use a corner radius?
Only with a solid background. Rounded corners on a transparent icon erode the shape at 16 px, which is why the small sizes are shown at real pixel size in the grid.
Where do the files go?
Unzip the archive into your web root — every file uses its conventional name and lives at the top level, so the snippet's absolute paths like /favicon.ico just work.
The ZIP didn't download on my iPhone — why?
Safari sometimes blocks programmatic downloads. The button opens the archive in a new tab instead; tap Share and then Save to Files to keep it.