- Is my image uploaded to a server?
- No. Decoding, center-cropping, scaling, PNG encoding, and ICO container assembly all run in your browser with the Canvas API and plain JavaScript. There is no upload request at any point — Convertitive never sees your image.
- Which sizes actually matter, and why these ones?
- The widget exports 16×16 and 32×32 PNGs for common browser surfaces, 48×48 inside the ICO file, 180×180 for an Apple touch icon, and 192×192 and 512×512 PNGs commonly used by web app manifests. Treat these as a practical starter set and check the requirements of the platform where you will publish the icon.
- Do I still need a .ico file in 2026?
- Yes, as a safety net. Browsers and crawlers that predate PNG favicon support, old bookmarks that hard-coded /favicon.ico, and a long tail of feed readers, link unfurlers, and monitoring bots still request /favicon.ico at the site root unconditionally. Serving a real file there costs nothing and avoids a steady stream of 404s in your logs.
- Are transparent backgrounds preserved?
- Yes. Every output is PNG-encoded — including the entries inside the .ico container — and PNG carries full alpha. The checkered previews above exist precisely so you can check how your transparent icon reads on both light and dark browser themes before committing to it.
- Why is the Apple touch icon 180 pixels?
- 180×180 is the size iOS requests for home-screen icons on 3x Retina displays (60pt × 3). Older devices that want 152 or 167 pixels simply downscale the 180px file, so shipping the single largest size covers the whole Apple lineup. Note that iOS composites its own rounded-corner mask, so supply a full-bleed square — no pre-rounded corners needed.
- What about SVG favicons?
- Modern desktop browsers accept <link rel=“icon” type=“image/svg+xml”> and it is a great addition — one crisp file at every size, and it can even adapt to dark mode with embedded CSS. But Safari's support has historically lagged and many non-browser agents ignore it, so the PNG-plus-ICO set remains the safe baseline. Ship the SVG as an extra <link>, not a replacement.