NeverUpload
Free • No sign-up • No watermark

Favicon generator

Drop one image and get the whole set a site needs today — a real favicon.ico, PNGs from 16 to 512 px, the apple-touch-icon and the HTML to paste. Built inside your browser, never uploaded.

Drag and drop your images here

or click to select from your device

JPG, PNG, WebP, AVIF • up to 20 images • output is always PNG

🔒

Processed on your device: Your photos are processed in your own browser and never pass through any server.

Verify it yourself
  1. Press F12 and open the Network tab.
  2. Add a file above and run the tool.
  3. You will see the page’s own scripts, its ads and its traffic measurement — and no request carrying your file.
  4. Stronger still — and the order matters: run it once while online, then disconnect, then run it again. It still works, because by then the page already holds everything it needs.

Transparency survives in the PNGs and in the .ico. Choose a solid colour if your icon has thin strokes that vanish on a dark browser tab.

📦 Everything in one zip

Six PNGs, a real .ico, the manifest and the HTML snippet.

🌐 A real .ico

Built byte by byte, with 16, 32 and 48 px inside it.

🔒 Nothing is uploaded

Your logo is read into memory and drawn locally.

What a favicon actually needs in 2026

The single favicon.ico in the site root stopped being enough a long time ago, and the pile of files that replaced it is why generators exist. A browser tab wants 16 or 32 px. A bookmark on a retina screen wants 48. iOS wants a 180 px apple-touch-icon with no transparency. An installable web app wants 192 and 512 declared in a manifest. This page produces all of it from one source image.

Why .ico still exists

Because it is the only file browsers look for without being told. A request for /favicon.ico arrives whether or not you declared anything, and answering it with a 404 is a wasted request on every page load. The format is not an image format at all: it is a container with a small header, one directory entry per size, and the image data after it. Since Windows Vista each entry may hold a complete PNG instead of the old bitmap, which is what lets a modern .ico keep transparency.

Start square, and start big

The tool fits your image inside each square without cropping, so nothing important is cut off — but a wide logo will end up with empty space above and below, which looks small in a tab. If you have a square mark, use it. And start from at least 512 px: enlarging a 64 px image to 512 does not invent detail, it just makes the blur bigger.

The detail everyone gets wrong at 16 px

An icon that reads beautifully at 512 px frequently turns to mush at 16. Thin strokes disappear, close colours merge, and text becomes a grey smear. That is why the preview here shows the real sizes rather than a scaled-down mockup: if the 16 px square is unreadable, the fix is a simpler drawing, not a better generator.

Why it runs in your browser

A logo is rarely secret, but it is often unreleased — a rebrand, a product that has not launched, a client file under contract. Uploading it to a generator means a copy sits on a server you do not control, for as long as that server feels like keeping it. Here the file is decoded in memory, drawn onto canvases and zipped locally.

Where each file is actually used

The zip looks like more files than anyone needs, so it helps to know who asks for what. favicon.ico answers the request browsers make on their own, with no declaration. The 16 and 32 px PNGs are what a modern tab actually renders when you declare them. apple-touch-icon.png at 180 px is what iOS uses when someone adds your site to the home screen — and iOS ignores transparency there, filling it with black, which is the one case where a solid background is worth choosing. The 192 and 512 px icons belong to the web manifest and are what an installable app shows in the launcher and the splash screen. Drop them all in the site root and the snippet wires the rest.

Frequently asked questions

A real one. The .ico is assembled byte by byte: a 6-byte header, a 16-byte directory entry per size, then the image data. It contains 16, 32 and 48 px, each stored as a PNG inside the container, which is what preserves transparency.

A square image of at least 512 px, ideally with transparency. A wide logo works but ends up with empty bands above and below, which makes it look smaller than it should in a browser tab.

The root, next to index.html, and then you paste the snippet into your <head>. The zip includes the snippet and a site.webmanifest already pointing at the 192 and 512 icons.

No. It is decoded in memory and drawn onto canvases in your browser. Open the Network tab and generate: no request carries the file.