Build my web app

Free browser tool · no signup · nothing uploaded

Web app icon resizer

Drop a square PNG (512×512 or larger). The tool renders each size below and packages them as a zip. Filter by Web/PWA for the manifest set, iOS for the Apple touch icon, Android for launcher densities.

🎨 App Icon Resizer

Resize your app icon to all required sizes for Android, iOS, and Play Store

🎨 Upload Icon (512×512 recommended)
Play Store
512 × 512
xxxhdpi
192 × 192
xxhdpi
144 × 144
xhdpi
96 × 96
hdpi
72 × 72
mdpi
48 × 48
ldpi
36 × 36
App Store
1024 × 1024
iPhone @3x
180 × 180
iPhone @2x
120 × 120
iPad Pro
167 × 167
iPad @2x
152 × 152
PWA Large
256 × 256
PWA Medium
128 × 128
Favicon Large
64 × 64
Favicon
32 × 32
Favicon Small
16 × 16

Which icons a web app actually needs

Browsers are specific about this, and getting it wrong is the most common reason an install prompt never appears. The manifest must reference at least a 192×192 and a 512×512 PNG; Chrome uses the first for the home-screen icon and the second for the splash screen it generates while your start page loads. Everything else is optional polish.

IconSizeWhere it is usedRequired?
Manifest icon192×192Android home screen, app switcher, install bannerYes
Manifest icon512×512Generated splash screen; Play listing when wrapped as a TWAYes
Maskable variants192 and 512, purpose: "maskable"Lets Android crop to circle, squircle or rounded square without clippingStrongly recommended
apple-touch-icon180×180iPhone and iPad home screen (Safari ignores the manifest icons)Yes, for iOS
Favicon32×32, 16×16 (or one SVG)Browser tab, bookmarksRecommended
Extra manifest sizes72, 96, 128, 144, 152, 384Older Android launchers and some desktop installs pick the closest matchOptional

The maskable safe zone, explained once

Android launchers apply a mask to app icons — Pixel phones use a circle, Samsung uses a squircle, others a rounded square. A "maskable" icon is one designed to be cropped: the important content sits inside a circle whose diameter is 80% of the image width, and the remaining 10% on each side is background colour that can be safely cut away. If you hand Android a logo that fills the whole square, the corners and often the edges of letters are lost.

The resizer's maskable preview shows your image inside the circle mask so you can see what survives. If the logo touches the edge, add padding before uploading — or upload a version with a solid background and the logo at about 60–70% of the width. Do not mark a non-padded icon as maskable in the manifest; Chrome will trust the flag and crop it.

Why iOS needs its own icon

Safari does not read manifest icons for the home screen. It looks for a <link rel="apple-touch-icon"> tag in the page head, and if none exists it uses a screenshot of the page — which is the blurry square you have seen on badly configured sites. Export the 180×180 version here and add:

<link rel="apple-touch-icon" href="/icons/apple-touch-icon-180x180.png">

iOS applies its own rounded-corner mask and does not support transparency on touch icons — transparent areas turn black. Use a solid background.

Android launcher densities, if you also ship an APK

A native Android package carries launcher icons per screen density: mdpi 48, hdpi 72, xhdpi 96, xxhdpi 144, xxxhdpi 192, plus the 512×512 hi-res icon for the Play listing. The Android filter produces exactly that set. If you build the Android package with our app builder this is handled for you; the set is here for people using Android Studio or other tooling.

Preparing the source image

Once the icons are exported, the PWA Builder writes the manifest entries for you, or copy this block and adjust paths:

"icons": [
  { "src": "/icons/icon-192x192.png", "sizes": "192x192", "type": "image/png" },
  { "src": "/icons/icon-512x512.png", "sizes": "512x512", "type": "image/png" },
  { "src": "/icons/maskable-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
  { "src": "/icons/maskable-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
]

Frequently asked questions

Can I upload an SVG?

Yes — the browser rasterises it at each target size, which gives the sharpest results. The exports are PNG because that is what manifests and iOS require.

Should every manifest icon be maskable?

No. Provide the plain "any" icons and the padded maskable ones as separate entries. Browsers pick whichever suits the surface; using only maskable icons makes the splash-screen icon look small.

Is my image uploaded anywhere?

No. Resizing happens on a canvas in your browser and the zip is assembled in memory with JSZip. Nothing leaves your device.

Why does my icon look blurry on a Pixel?

Usually the 192 px icon was upscaled from something smaller, or the manifest lists only 512 and Chrome downscaled it with the wrong filter. Export from a large source and include both sizes.