Favicon Generator
Loading tool…
About Favicon Generator
Upload a PNG, SVG, JPG, or WebP. Non-square images are cropped or padded, never squashed. Crop fills the square; drag to choose which part to keep. Fit (pad) keeps the whole image; PNG and SVG empty sides stay transparent, JPG fills with white. Click Generate favicons and review every size. If the source square is under 512 pixels, a notice warns that 192 and 512 will look soft.
SVG is drawn at each target size, not blown up from one small raster. Raster sources step down in halves with smoothing instead of jumping from 512 to 16 in one draw. Nothing is uploaded. Put the zip files at the site root and paste the HTML into head. Browsers cache favicons aggressively; hard-refresh after deploy.
When to use it
Use it when a site still has one 16px .ico, or when Android install is missing 192 and 512, and you have a PNG or SVG to cut into a pack.
Use Crop when a wide photo should fill the square. Use Fit when a logo must stay whole (JPG pads with white). Generate favicons, then Download zip.
How to use Favicon Generator
- 1Upload an image. Square is easiest. If it is not, pick Crop or Fit, then drag the crop if you need to.
- 2Click Generate favicons. Review every size. A notice appears if the source square is under 512 pixels.
- 3Download the zip. Put the files at the site root. Paste the HTML into head.
What is in the zip
PNGs: 16 and 32 (tab icon), 48 (shortcuts), 180 (apple-touch-icon.png), 192 and 512 (Android). favicon.ico packs 16, 32, and 48 as PNG frames in one ICO so a request to /favicon.ico still has an icon. site.webmanifest points at /icon-192.png and /icon-512.png with display standalone and a white theme color. html-tags.txt is the head snippet. README.txt reminds you nothing in the zip was uploaded.
Safari pinned-tab mask-icon is not generated; that is a separate single-color SVG. The manifest name fields are empty in this pack; fill them in the JSON if you need an install name.
How to read the results
Every size is shown after Generate favicons. A notice appears if the source square is under 512 pixels: 192 and 512 will look soft. Generate again rebuilds after you change Crop, Fit, or the file.
Download zip writes favicon.ico, the PNGs, site.webmanifest, html-tags.txt, and README.txt. Put those files at the site root. The button says Generating… while canvases draw.
Why this matters
A tab that requests /favicon.ico never reads your PNG link tags. Packing 16, 32, and 48 into one ICO is how that request still gets an icon.
Android install uses icon-192 and icon-512 through the manifest. PNG link tags alone do not register those sizes. Upscaling a 64px source cannot invent edges, which is why the under-512 notice exists.
Limits and privacy
The image never leaves this browser. There is no upload and no hourly cap. Closing the page drops the pack. You still host the zip contents. No login.
Common mistakes
Uploading a 32px raster and ignoring the soft-512 notice.
Using Fit on a JPG logo and wondering why the sides are white. JPG has no alpha.
Leaving files in the zip folder on your laptop. Browsers cache the old /favicon.ico until you hard-refresh after deploy.
FAQs
- Does the image upload to a server?
- No. The pack is built in your browser. Nothing is sent to a server.
- How is SVG handled?
- The SVG is drawn at each target size, not scaled up from one small raster.
- Why include a manifest?
- Android uses icon-192 and icon-512 through site.webmanifest. PNG link tags alone do not install those sizes.
- What is inside favicon.ico?
- One file with 16, 32, and 48 PNG frames. Browsers that request /favicon.ico without reading link tags still get an icon.
- Is transparency kept?
- Yes for PNG and SVG. JPG has no alpha, so Fit fills the empty sides with white.
- Why do 192 and 512 look soft?
- The source square was under 512 pixels, so those sizes are upscaled. Raster sources also step down in halves instead of jumping from 512 to 16 in one draw. A tiny source still cannot invent detail.
- What do Crop and Fit do?
- Crop fills the square and lets you drag which part to keep. Fit (pad) keeps the whole image. PNG and SVG empty sides stay transparent. JPG Fit fills empty sides with white because JPG has no alpha.
- What does Generate favicons create before the zip?
- On-page previews of every size so you can spot a soft 512. Download zip then writes favicon.ico, PNGs, site.webmanifest, html-tags.txt, and README.txt. Generate again rebuilds after you change the file or Fit.
- Is mask-icon in the zip?
- No. Safari pinned-tab SVG is a separate single-color asset. Manifest name fields are also empty; fill them in site.webmanifest if the PWA needs an install name.