Free · No signup · No upload

App Icon Generator

Drop in one 1024×1024 image and get every icon size iOS, iPadOS, Android, macOS, watchOS and the web require — with a ready-to-drag Contents.json and adaptive-icon XML.

Everything runs in your browser. Your image is never sent to a server.

Generate icons

1

Upload your icon

PNG, JPEG, WebP or SVG. 1024×1024 recommended.

Drag & drop your image here

or browse files

2

Pick your platforms

Select everything you need — shared sizes are rendered once.

3

Options

Folder structure and how transparency is handled.

Every size, spelled out

Exact pixel dimensions produced for each platform. Sizes shared between platforms are rendered once and reused.

FAQ

Is my image uploaded anywhere?

No. Decoding, resizing and zipping all happen in your browser using Canvas and a Web Worker. Open DevTools → Network and you will see no requests after the page loads.

What source image should I use?

A square 1024×1024 PNG with no rounded corners baked in. iOS and Android apply their own masks — pre-rounding gives you a double-rounded icon. Non-square images are letterboxed rather than stretched.

Does the generated Contents.json work in Xcode?

Yes. Drag the AppIcon.appiconset folder into your asset catalog, or drop the whole Assets.xcassets in. iPhone and iPad entries are merged into a single set, exactly as Xcode's own template does.

What is the difference between Android and Android Adaptive?

Android emits the legacy raster ic_launcher.png and ic_launcher_round.png for API 25 and below. Android Adaptive emits the API 26+ two-layer format: a 108dp foreground with your artwork inset into the 72dp safe zone, a 108dp background, and the mipmap-anydpi-v26 XML that binds them. Ship both.

What is the difference between App Icon and Image Sets?

App Icon makes the launcher icon: square, fixed pixel sizes, one per platform slot. Image Sets makes ordinary in-app assets — buttons, illustrations, logos — which keep their own aspect ratio and ship as 1x/2x/3x for iOS and drawable-*dpi for Android.

Why does my small icon look soft?

Downscaling 1024px to 40px is done with repeated halving rather than a single drawImage, which avoids the aliasing a naive bilinear resample produces. But detail that is 4px wide at 1024 cannot survive at 40. Design your icon so it reads at 40×40.