An app icon is one drawing that has to wear 36 different sizes, on 5 platforms, in contexts from a 16-pixel browser tab to a 1024-pixel store upload. The App Icon Generator takes a single photo, cover-crops it to a square and exports the whole family as one ZIP: 36 PNGs in per-platform folders, plus a PWA manifest and an iOS icon-set manifest. Nothing is uploaded; the crop, the resampling and the ZIP assembly all run on the canvas of the browser.
The 36 Sizes Across Five Platforms
The list is 12 iOS, 9 Android, 5 web, 6 macOS and 4 Windows entries. iOS runs from the 29-pixel settings icon to the 1024-pixel App Store upload, with 40, 58, 60, 76, 80, 87, 120, 152, 167 and 180 in between. Android covers the 512-pixel Play Store icon, two adaptive-icon sizes (48 and 192) and the five launcher densities from 36 at ldpi to 192 at xxxhdpi. Web holds the PWA pair at 192 and 512, the 180-pixel Safari apple-touch-icon, and the two favicons at 32 and 16. macOS steps through 16, 32, 128, 256, 512, 1024; Windows ships tiles at 44, 71 and 150 plus a 500-pixel store image. The platform toggle skips whole groups, so a web-only build downloads 5 PNGs and a manifest instead of the full 36. If you only need one target dimension, the image resizer does the single resize under the same cover-crop rule.
From a 4000×3000 Photo to a 512 Icon
Every target is square, so a rectangular photo has to become a square before it can scale. The rule is cover-crop: scale = max(w / iw, h / ih), where w and h are the target and iw, ih the source. For a 4000×3000 photo into a 512 target, scale = max(512/4000, 512/3000) = max(0.128, 0.17067) = 0.17067, so the source square is 512/0.17067 = 3000 on a side, centered: sx = (4000 − 3000)/2 = 500, sy = 0. The 4:3 photo hands over its 3000×3000 center; 500 pixels of each side are cut. A portrait photo loses top and bottom instead. The max is deliberate: min would fit the whole photo inside the square and leave the corners empty, exactly what an icon must not have. The image converter changes the encoding without touching the geometry, and the image cropper applies the same center-square math when you want the crop alone.
One Resample Per Size, Not a Chain
Each of the 36 outputs is drawn in a single canvas operation straight from the original image, smoothing on, quality set to high. There is no 1024-to-512-to-256 chain: the 16-pixel favicon comes from one 0.015625 step off a 1024 source, and the 128-pixel macOS icon from one 0.25 step off 512. That has a visible consequence. Because every size shares the same crop and the same resample, a detail that reads well at 1024 is the very detail that turns to noise at 16, and the preview row at 32, 48, 64, 128 and 180 is where a weak design shows itself before the ZIP is built.
What Lands in the ZIP
The archive holds up to 36 PNGs in ios/, android/, web/, macos/ and windows/ folders, plus three documents. With web selected there is a manifest.json: the app name, a short_name cut to the first 12 characters (My Very Long App reports itself as My Very Long), the two PWA icons with the any maskable purpose, theme and background set to #ffffff, and display standalone. With iOS selected there is an ios/Contents.json with the 14 entries Xcode expects, mapping the 20, 29, 40, 60, 76, 83.5 and 1024 point sizes to the PNG files. A README.md lists the size-to-file table per platform. The download name derives from the app name: every character that is not a letter or a digit becomes a dash and everything is lowercased, so My Cool App produces my-cool-app-icons.zip. A trailing punctuation mark becomes a second dash (my-cool-app--icons.zip), one reason the name field stops at 30 characters. PNG is a lossless codec, so the 1024 icon weighs what the drawing dictates; when the store or the web budget counts bytes, the image compressor is where the re-encoding makes the same pixels cheaper.
Where the Icons Go: Manifest, Splash, Store
The two manifest icons are the ones the browser installs: 192 for the install screen, 512 for the splash and the share card. The any maskable purpose tells the operating system it may crop the image into a circle or a squircle, which is why the safe zone is the center, roughly 80 percent of the canvas: keep the subject inside and leave the frame to the platform. The 32 and 16 files in web/ are the favicon siblings, the tab icon the browser fetches before it reads the manifest. The favicon generator covers the rest of that family, including the multi-size ICO, the Windows mstile and the ready-to-paste HTML link tags. The App Store and Play Store entries are the first thing a reviewer sees, so 1024 and 512 are the sizes worth a second look.
The Same Resize Math Everywhere
Cover-crop plus one high-quality downscale is a small piece of math that shows up across the site. The image resizer applies it to a single target, the compressor re-encodes the pixels that come out of it, and the file size converter is where you weigh the result: a ZIP of 36 PNGs is where a 1024 master costs you in bytes, and the 16-pixel files cost almost nothing. If the problem is the crop itself, the subject sitting in a corner while the center-square cut misses it, the image cropping guide walks through the crop math before the resize. The icon is the last artifact that math produces: one square, 36 sizes, and the same center in every one of them.