Free Favicon Generator
Turn any image into a complete favicon package: a multi-size favicon.ico, Apple touch icon, Android/PWA icons, a web manifest, and the ready-to-paste HTML snippet β all zipped, in your browser.
Drop a file here, or click to browse
PNG, JPG, WebP, SVG, HEIC, HEIF Β· processed on your device
or press Ctrl+V to paste from your clipboard
Your files never leave your device. All processing happens locally in your browser.
π‘ For the sharpest result, upload a square image at least 512Γ512. Transparent PNG or SVG works best.
Common uses
- Create a Website FaviconGenerate the complete favicon set every browser and device expects.
- Generate PWA & Manifest IconsGet the 192px and 512px icons and web manifest a PWA needs.
- Create an Apple Touch IconGenerate the 180Γ180 icon iOS uses when a site is saved to the home screen.
- Turn a Logo into a FaviconConvert your brand logo into a clean, recognizable favicon.
- Generate Favicons for Any FrameworkGet drop-in favicon files for React, Next.js, WordPress, and more.
How It Works
This tool converts any PNG, JPEG, WebP, or SVG into a complete favicon package β multi-size .ico, Apple touch icon, Android/PWA icons, a web manifest, and a ready-to-paste HTML snippet β entirely inside your browser using the Canvas API and JSZip. Nothing is uploaded; all rendering and file assembly happens locally.
- 1Canvas rescales your imageThe browser draws your source image onto off-screen HTML Canvas elements at each required size (16, 32, 48, 180, 192, and 512 px). SVGs without explicit width/height attributes are normalized first via DOMParser and XMLSerializer so Firefox and Chrome produce identical pixel output rather than a blank canvas.
- 2Hand-written ICO encoder packs the .ico fileSmall ICO entries (16, 32, 48 px) are encoded as raw 32-bit BGRA DIB bitmaps β the BITMAPINFOHEADER plus bottom-up XOR rows and a 1bpp AND mask β because Windows shell components require uncompressed DIB format at those sizes. The tool writes the ICO directory header and concatenates the entries entirely with DataView and Uint8Array, with no external ICO library involved.
- 3PNG outputs are produced via canvas.toBlobEach PNG variant (favicon-16x16, favicon-32x32, apple-touch-icon-180x180, android-chrome-192x192, android-chrome-512x512) is captured by calling canvas.toBlob with 'image/png', delegating lossless encoding to the browser's built-in image engine. Optional padding, background color, and shape clipping (square, rounded, or circle) are applied to the canvas context before capture.
- 4JSZip bundles everything into one downloadJSZip assembles all generated files β favicon.ico, the five PNGs, a site.webmanifest with your app name, and a favicon-snippet.html with the correct <link> tags β into a single .zip blob that downloads automatically to your device.
Your image is loaded directly into the browser's Canvas API and never leaves your device β no file data is transmitted to any server at any point.
Related Tools
PNG to ICO Favicon Converter
Convert PNG, JPG, WebP, or SVG images into multi-size .ico favicon files. Pick the sizes you want bundled (16, 32, 48, 64, 128, 256) and download a single .ico.
Animated GIF Maker
Combine multiple images into an animated GIF. Adjustable frame delay, output width, looping, and quality. Encoded entirely in your browser.
Signature Maker
Draw a signature with your mouse, finger, or stylus, or type your name in a handwriting font, then export it as a transparent PNG or SVG.