Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. Image Processing
  3. Image to Icon Generator
Add to favorites

Image to Icon Generator

Turn one image into a full icon set, including a real multi-size favicon.ico read back from its own bytes before it is offered. Names the resampling filter, states what a square crop discarded, and decodes every PNG again to confirm its size.

Edits stay in your browserMore image processingJump to full guide

Initializing in your browser…

You might also like

Placeholder Image Generator

Placeholder images described once and drawn two ways, so the preview, the raster and the SVG are the same picture. The label is measured and made to fit, and the quality slider only appears where quality does something.

Favicon Generator

Build a favicon from text, an emoji or an image and get a real favicon.ico holding 16, 32 and 48 pixel images, seven PNGs, a web app manifest and the head tags, in one archive, with the ICO parsed back from its own bytes before it is offered

Texture Generator

Twelve procedural patterns that tile exactly, verified live with a measured wrap error and a 3 by 3 repeat view. Perlin, fractal, ridged, Voronoi, marble, wood and geometric grids.

Image to Icon Generator: a worked example

One 512 by 512 logo, asked for the web set plus a favicon.ico.

Input

logo.png · crop to fill · Lanczos 3
What Image to Icon Generator produces

What comes out, and what opened it

favicon.ico       ICONDIR type 1, 3 entries: 16x16, 32x32, 48x48
                  every BMP declares double its height (32 -> 64)
                  read back here, and opened by Pillow as ICO
five PNGs         each decoded again: exactly the size requested
site.webmanifest  192 and 512, the two Chrome installability names
head-tags.html    link and meta tags for the set

A .ico is a container, not a renamed PNG, and the field naive writers get wrong is the BITMAPINFOHEADER height: inside an ICO it is DOUBLED, because the header covers the image and its transparency mask together. This one is written from that layout and then parsed again before it is offered, so a writer that has drifted produces nothing rather than a file some readers quietly ignore.

About the Image to Icon Generator

Turn one image into a full icon set for the web, iOS, Android and Windows, including a real multi-size favicon.ico that is read back from its own bytes before it is offered. The downscale names the filter it used, the fit is a choice with its cost in pixels stated, and every file is decoded again to confirm its size.

How to use

  1. 1Upload a source image, ideally square and at least 512 pixels
  2. 2Pick a platform preset, or choose sizes individually
  3. 3On the Custom tab, decide how a non-square picture is made square, and pick the resampling filter, shape, background and padding
  4. 4Read the panel: it says whether the ICO read back, what the fit discarded, and whether every PNG is the size it claims
  5. 5Download the ZIP, which holds the PNGs, favicon.ico, the web app manifest and the head tags

Where this helps

  • A complete favicon set

    The PNG sizes, a real .ico, the manifest and the tags in one archive, with each file checked before it goes in.

  • App store submissions

    The 1024 pixel Apple size and the 512 pixel Android size, both resampled with a named filter rather than whatever a canvas felt like.

  • A wide or tall logo

    See exactly what a square crop would cost before choosing it, and pick fit inside instead if the ends matter.

  • Android adaptive icons

    Add padding so the artwork survives the launcher cropping the icon to a circle.

Key features

  • A real multi-size favicon.ico built from the ICONDIR layout, including the doubled BITMAPINFOHEADER height an ICO requires
  • The ICO read back with a parser that refuses a file it cannot walk, so a drifted writer cannot hand one over
  • Three fit modes with the cost stated: crop to fill reports the source pixels it discarded, fit inside reports none
  • Six named resampling filters, each carrying the paper it comes from, with alpha premultiplied before filtering
  • Every produced PNG decoded again and its size compared with the size requested
  • 26 sizes across web, Apple, Android and Windows, with five platform presets
  • Square, rounded and circular shapes, a background colour and a padding inset for maskable icons
  • A ZIP holding the PNGs, favicon.ico, site.webmanifest and the head tags

Tips & best practices

  • For a non-square logo, decide the fit deliberately. Crop to fill is the default and will cut the sides off a wide wordmark; fit inside keeps all of it and shows the background above and below.
  • For Android adaptive icons, raise the padding toward 20 to 30 percent. The launcher crops the icon to a circle and anything outside that safe zone is lost.
  • A transparent background plus the circle shape gives a round icon with no ring; a coloured background plus the circle gives a coloured disc. The background is painted in the same shape as the clip.
  • If all you need is the web set, the Favicon Generator writes exactly the seven files a browser asks for and stops there. This tool exists for the longer per-platform lists and for shaping the artwork first.

Examples

  • A favicon.ico that is actually an ICO

    Upload a square logo and download favicon.ico: a three-image container at 16, 32 and 48 pixels, read back before it is handed over. Pillow opens it and reports all three sizes.

  • A wide wordmark without losing the ends

    Choose fit inside rather than crop to fill. The panel then reports zero source pixels discarded, and the 512 icon comes out with the whole wordmark and transparent bars above and below it.

How it works

One source image becomes a set of square icons, and the two things a generator can get wrong are both settled here by asking something else.

The first is the ICO. A `.ico` is a container: a six-byte ICONDIR, a sixteen-byte directory entry per image, then the images themselves, and a browser asks for `/favicon.ico` whether or not the page declares it. A PNG saved under an `.ico` name is not one, and the field a naive writer gets wrong is specific: a BMP inside an ICO declares DOUBLE its own height, because the BITMAPINFOHEADER describes the image and its transparency mask together, so a 32 pixel icon says 64. This tool writes the container from that layout, at 16, 32 and 48 pixels, and then READS IT BACK with a parser that refuses a file it cannot walk, checking that doubled field on every entry. If the read fails the file is not offered at all. In the test suite the produced file is handed to Pillow, which opens it as an ICO and reports the three sizes.

The second is what happens to a picture that is not square. Making a square out of an 800 by 400 logo means throwing half of it away or leaving space around it, and those are different pictures. The old behaviour was a silent crop, which is what `Math.max(target/width, target/height)` does. It is now a choice of three with the consequence stated in numbers: crop to fill reports that it discarded 160,000 of the 320,000 source pixels, fit inside reports that it discarded none and left the background showing, and stretch says it changed the proportions.

The downscale itself goes through this project's resampler rather than through `drawImage`, so the filter is named and cited: Lanczos 3 from the windowed sinc of Duchon (1979) by default, with the Mitchell and Netravali cubics (SIGGRAPH 1988), Catmull-Rom, triangle, box and nearest neighbour available. Alpha is premultiplied before filtering, so a cut-out logo picks up no dark halo around its edges. Every PNG that comes out is then DECODED AGAIN and its size compared with the size that was asked for, and the page reports that comparison rather than assuming it.

Shape, background and padding are applied as they were: square, a rounded rectangle with a corner radius of a fifth of the side, or a circle, over a transparent, white, black or chosen background, with a padding slider that insets the artwork on all four sides. Padding is the control that matters for Android adaptive icons, whose launcher crops to a circle.

The archive holds every selected PNG, `favicon.ico` when it read back cleanly, a `site.webmanifest` naming the 192 and 512 icons that Chrome's installability criteria ask for, and a `head-tags.html` with the link and meta tags. `favicon.ico` gets a link tag with a size because that is what tells a browser which of the container's images to prefer. Everything runs in the browser and nothing is uploaded.

Frequently asked questions

Is the favicon.ico a real ICO?

Yes, and it is checked rather than claimed. The file is written from the ICONDIR and ICONDIRENTRY layout with three images inside it, then parsed again by a reader that walks every entry and verifies the doubled height field a BMP inside an ICO requires. If that read fails the file is not offered for download at all. In the test suite the downloaded file is opened by Pillow, which reports it as an ICO holding 16, 32 and 48 pixel images.

Why does a BMP inside an ICO say it is twice as tall?

Because the BITMAPINFOHEADER describes the colour image and the one-bit transparency mask stacked together, so the height field covers both. A 32 pixel icon declares 64. It is the single field naive ICO writers get wrong, and a file that gets it wrong is silently ignored by some readers rather than rejected.

What happens to a logo that is not square?

Whatever you choose. Crop to fill takes a centred square and says how many source pixels it discarded; on an 800 by 400 source that is 160,000 of 320,000. Fit inside keeps the whole picture and leaves the background showing, discarding nothing. Stretch squeezes it and says so. The old behaviour was the first of those, applied silently.

Which resampling filter should I use?

Lanczos 3 for a photograph or a detailed mark; it is the sharpest and rings slightly at hard edges. Box for flat graphics with large areas of one colour, where a sharp filter adds nothing. The filter is named on the page along with the paper that defines it, so the choice is recorded rather than left to the browser.

How do I know the files are the right size?

Each one is decoded again after it is written and its actual pixel dimensions are compared with the size that was asked for. The page reports that comparison for the whole set rather than assuming the encoder did what it was told.

Should I use this or the Favicon Generator?

The Favicon Generator if you want the web set and nothing else: seven files, the manifest and the tags, no choices to make. This one if you need the per-platform lists, or if the artwork has to be shaped, padded or placed on a background first.

Related tools and how they differ

  • Favicon Generator: The web set only: the seven files a browser actually asks for, with no per-platform lists and no shaping controls.
  • Image Resizer: The same six named resampling filters, for a single picture rather than a set.

Private by design

Images are decoded, edited, and exported entirely inside this browser tab. No originals, exports, or metadata are uploaded.