Skip to main content
FG

Favicon Generator

Turn any image into a complete favicon package — six PNG sizes plus a combined multi-resolution .ico file, generated locally in your browser.

Did you like the tool? Thanks!
Share:

More Image Tools Tools

IC

Image Cropper

Crop any image to exactly the area you need, with a live preview — nothing is uploaded, everything happens in your browser.

IR

Image Resizer

Resize any image to an exact width and height in your browser — optional aspect-ratio lock, PNG/JPEG/WebP output, nothing uploaded.

IC

Image Compressor

Shrink an image's file size by re-encoding it at a chosen quality level — live before/after size comparison, JPEG/WebP/PNG output, done locally.

IF

Image Flip & Rotate

Flip an image horizontally or vertically and rotate it by any angle — quick 90/180/270° buttons or a free-angle slider, corners never clipped.

IT

Image to Base64

Convert an image into a Base64-encoded string — full data URI or raw Base64, character count, one-click copy, all done locally.

BT

Base64 to Image

Paste a Base64 string or data URI and preview the decoded image instantly — auto-trims whitespace, lets you pick the assumed format, download in one click.

PI

Placeholder Image Generator

Generate a simple placeholder image for wireframes and mockups — custom size, colors and text, auto-sized to fit, PNG/JPEG/WebP output.

IF

Image Format Converter

Convert an image between PNG, JPEG, WebP and BMP entirely in your browser — no upload, instant preview, adjustable quality.

AA

ASCII Art Generator

Turn a photo into text-based ASCII art, or type a short message as a large block-letter banner — both rendered entirely in your browser.

QC

QR Code Generator

Generate a real, scannable QR code from text, a URL, Wi-Fi details, an email address or a phone number — encoded entirely in your browser, no external API.

Every size below is generated locally in your browser -- nothing is uploaded anywhere.

The combined .ico file bundles all 6 sizes into a single multi-resolution icon, the format browsers and Windows Explorer expect for a site favicon.

How to Use Favicon Generator

Upload an image and it's automatically resized to six standard favicon sizes — 16, 32, 48, 64, 128 and 256 pixels square. Download any individual size as its own PNG, or grab the combined favicon.ico file that bundles all six resolutions into the single multi-size icon format browsers and Windows Explorer expect. Non-square images are automatically center-cropped to a square first, with a note confirming exactly what was cropped.

About Favicon Generator

A favicon is the small icon shown in a browser tab, bookmark list, and (on some platforms) a phone's home screen shortcut — one of the smallest pieces of visual branding a website has, and one that's genuinely tricky to get right because it needs to look intentional at a huge range of physical sizes. A detailed logo that reads perfectly at 256 pixels can turn into an unrecognisable smudge at 16 pixels, the size a favicon is actually most often seen at, sitting in a crowded row of browser tabs. This is exactly why favicons are traditionally distributed as a set of several fixed sizes rather than one single image scaled on the fly: each size gets its own clean, deliberately-resized version, and the browser or operating system picks whichever one best matches how it's actually going to be displayed, rather than stretching or shrinking a single source image and hoping it holds up. The classic way to deliver every size at once is the `.ico` file format — a container that can hold several images of different resolutions inside one file, with a small directory at the start telling whatever's reading it what sizes are available and where to find each one. This tool generates a modern variant of that container using PNG-compressed image data inside each entry rather than the older raw bitmap format `.ico` was originally built around; every mainstream browser and Windows Explorer today reads PNG-in-ICO correctly, and it produces a meaningfully smaller file than storing six uncompressed bitmaps side by side would. Six sizes are generated because each maps to a genuinely different real-world use: 16×16 and 32×32 are the classic browser-tab and bookmark-bar sizes (32 is effectively the 16px icon shown on a high-density/Retina-style display, where twice the pixels are needed to render the same physical size sharply); 48×48 is used by some desktop shortcuts and older Windows contexts; 64×64 covers a handful of higher-density contexts and app-list views; and 128×128 and 256×256 are large enough for a home-screen icon on a phone or a high-resolution app switcher, where a tiny 16px source would look visibly blurry if simply scaled up. Generating all six from one source image, resized independently rather than derived from each other in a chain, keeps every size looking as sharp as the source image allows at that resolution. Because every genuinely square favicon size assumes a square source image, a non-square upload is automatically center-cropped to a square first — taking the largest possible square from the middle of the image, trimming equally off whichever pair of edges (left/right or top/bottom) is longer, rather than squashing the image into a distorted square shape. This is called out explicitly with the exact crop dimensions used, since it changes what ends up visible at the edges of the final icon versus the original upload — a wide logo with important detail near its far left or right edge, for instance, will have that detail cropped away, and knowing this upfront lets you crop or reframe the source image yourself first if that matters for your particular logo.

Details & Tips

The processing pipeline, step by step: the uploaded image is first checked for its width-to-height ratio. If it isn't already square, the largest possible square region is cropped from its exact center — for a 1200×800 source, that means an 800×800 square starting 200 pixels in from the left and right edges, discarding the extra width evenly from both sides rather than from just one. From that guaranteed-square source, each of the six target sizes (16, 32, 48, 64, 128, 256) is drawn independently onto its own canvas sized exactly to that target, using the canvas's high-quality image smoothing setting so each resize is as clean as the browser's own scaling algorithm can make it, and each is exported as its own standalone PNG via `canvas.toBlob()`. The combined `favicon.ico` file is then assembled entirely in JavaScript, byte by byte, following the ICO container format exactly: a 6-byte `ICONDIR` header (a reserved field that must be zero, a type field set to 1 to mean "this is an icon file" rather than a cursor file, and a count of how many images follow — 6, in this case), immediately followed by six 16-byte `ICONDIRENTRY` records, one per size, each recording that image's width and height (stored as a single byte per dimension, where the special value 0 means 256 — since a byte can only directly represent 0-255), a colour count of 0 (meaning "no palette, full colour"), 32 bits per pixel, the exact byte length of that size's PNG data, and the byte offset inside the file where that image's data begins. After all six directory entries comes the actual image data: the six PNGs, one after another, in the same order their directory entries listed them, exactly matching the offsets recorded in the header — a single off-by-one error in this offset math is the most common bug in a hand-written ICO encoder, so each offset is computed by running total (header size, then adding each previous PNG's exact byte length) rather than any fixed or guessed value. Worked example of the byte layout for a 32×32 entry: if the header and all six directory entries together total 102 bytes (6 + 6×16), and the 16×16 PNG that comes first in the file happens to be 320 bytes, the 32×32 entry's recorded offset would be `102 + 320 = 422` — precisely where its PNG bytes begin in the file, immediately after the 16×16 image's data ends. Every one of these steps — cropping, resizing, PNG encoding, and the final ICO assembly — happens locally using the Canvas API and raw JavaScript byte manipulation. No image is ever uploaded to a server at any point; the entire favicon package is generated and downloaded directly from your browser tab.

Frequently Asked Questions

What sizes are generated?
16×16, 32×32, 48×48, 64×64, 128×128 and 256×256 pixels — covering everything from a browser tab icon up to a high-resolution home-screen or app-switcher icon.
What's inside the favicon.ico file?
A single .ico container bundling all six PNG-compressed sizes together with a small directory describing each one's dimensions and location in the file — the standard multi-resolution format browsers and Windows Explorer expect for a site favicon.
What happens if my image isn't square?
It's automatically center-cropped to the largest possible square before any resizing happens, trimming evenly from the longer pair of edges. A note shows the exact crop dimensions used so you know what was trimmed away.
Can I download just one size instead of the whole set?
Yes — every size has its own individual PNG download button alongside the combined favicon.ico download, so you can grab exactly the size(s) you need.
Why do I need so many different sizes instead of one image?
A single image scaled to fit every context rarely looks sharp at every size — a detailed logo that works at 256px often turns into an unrecognisable smudge at 16px. Each size here is resized independently from the original for the cleanest possible result at that specific resolution.
Is my image uploaded anywhere?
No. Cropping, resizing, PNG encoding and the final .ico assembly all happen locally in your browser using the Canvas API — nothing is ever sent to a server.
Why is 32×32 needed if 16×16 already covers the browser tab?
32×32 is effectively the 16px browser-tab icon rendered for high-density ("Retina"-style) displays, which need twice the pixel data to show the same physical size sharply rather than looking soft or blurry.
Does the tool support transparent backgrounds?
Yes — if your source image has transparency, it's preserved through every resize and into the PNG and ICO output, since PNG (and PNG-in-ICO) fully supports an alpha channel.
Will this work for an app icon, not just a website favicon?
The individual PNG sizes work well as a starting point for app icons too, though most app stores have their own specific size and format requirements beyond what a website favicon needs — check your target platform's exact specification before submitting.
What image formats can I upload?
Anything your browser can natively display as an image — PNG, JPEG, WebP, GIF and BMP all work reliably. For the sharpest result at 256×256, start from a source image at least that large.
Why use PNG-in-ICO instead of the older raw bitmap ICO format?
Every mainstream browser and Windows Explorer reads PNG-compressed image data inside an ICO file correctly today, and it produces a meaningfully smaller combined file than storing six uncompressed bitmaps side by side would.

Also Available As

favicon generator, favicon.ico generator, create favicon online, png to ico, favicon maker, generate app icon sizes

Found a Problem?

Let us know if something with Favicon Generator isn't working as expected.

Thanks — we'll take a look.