App Icon Generator — Windows, macOS, iOS, Android & Linux
Turn one PNG, JPEG or WebP image into every icon your app needs: real .ico and .icns containers, an Xcode AppIcon set, Android mipmaps and a Linux hicolor theme — generated locally in your browser.
Click or drop one or more PNG, JPEG or WebP images
PNG, JPEG and WebP up to 15 MB each — the format is verified from the file's bytes, not its extension
Your image is decoded and resized locally. Nothing is uploaded.
One image, every platform
Each platform expects a different icon format and a different set of sizes. Windows wants a multi-image .ico file, macOS a real .icns container, iOS an AppIcon.appiconset with a Contents.json, Android mipmap folders at five densities, and Linux a hicolor theme tree. This tool builds all of them from a single source image and packages each platform separately.
The ICO and ICNS files are genuine binary containers with PNG frames inside — not renamed PNGs. Everything is encoded in your browser, so the source artwork never leaves your device. Upload several images at once and each one becomes its own complete platform set.
How to generate app icons
- 1
Drop one or more PNG, JPEG or WebP images. The format is checked from the file's magic bytes, not its extension.
- 2
Choose how the image fits a square (contain, cover or stretch) and the background: transparent, white or a custom colour.
- 3
Select the platforms you need, adjust the iOS asset format and the Android adaptive options, then generate.
- 4
Download a single platform as a ZIP or all selected platforms together. Each bundle contains its own README with import steps.
What each platform receives
The exact sizes and files are listed below. Your fit and background settings are applied to every bitmap; the container formats are built to their real specifications.
| Platform | Output |
|---|---|
| Windows | A single real .ico file with 16, 24, 32, 48, 64, 128 and 256 px PNG frames. |
| Linux | PNG icons at 16, 24, 32, 48, 64, 128, 256 and 512 px in the hicolor theme layout. |
| macOS | A real .icns container with 16–1024 px PNG elements (icp4–icp6 and ic07–ic14).macOS does not add the rounded “squircle” automatically — that shape belongs to the artwork. |
| iOS / iPadOS | An AppIcon.appiconset with Contents.json — universal (single 1024 px) or the 18-slot legacy set. |
| Android | mipmap PNGs for mdpi–xxxhdpi, an optional round launcher, plus adaptive foreground/background layers and mipmap-anydpi-v26 XML.Adaptive icons use a 108 dp canvas with a 66 dp safe zone. The foreground is generated inside that zone; the background is your chosen colour or image. |
Every size is generated from your source at its native resolution; no single file is stretched to cover all requirements.
How to install the icons
- WindowsPoint your installer, shortcut or Win32/.NET application icon at the generated .ico file.
- LinuxCopy the hicolor tree into ~/.local/share/icons/ or /usr/share/icons/, then run gtk-update-icon-cache. Reference the icon by name in your .desktop file.
- macOSReplace Contents/Resources/<YourApp>.icns in the app bundle, or drop the .icns into an Xcode asset catalog and set it as the App Icon.
- iOS / iPadOSDrag AppIcon.appiconset into Assets.xcassets, then select it under the target's App Icons setting.
- AndroidCopy the res/mipmap-* folders into app/src/main/res/. Keep the adaptive XML in mipmap-anydpi-v26 and the layers in the density folders.
Limits and memory
Source images are limited to 15 MB, 8192 px per side and 40 megapixels, and one run produces at most 120 files. These limits keep the tab responsive and prevent a huge canvas from exhausting memory. Generation reports progress per platform, and a failing platform is marked as failed instead of being presented as complete.
Privacy
Your image is decoded with createImageBitmap and rendered with Canvas inside your browser. There is no upload, no server-side conversion and no account. The ZIP archives are assembled in memory with JSZip.
Related tools
Frequently asked questions
Are the .ico and .icns files real?
Yes. The ICO is an ICONDIR with PNG frames and the ICNS is an Apple container with PNG elements. The tool re-reads both files after encoding to confirm the structure and every frame's pixel size.
Is my image uploaded?
No. Decoding, resizing, encoding and ZIP creation all happen in your browser.
Why does every platform use different sizes?
Because the operating systems define different requirements: Windows expects 16–256 px inside one .ico, macOS up to 1024 px inside the .icns, Android uses five density buckets and iOS uses fixed asset slots.
Can I use transparency for iOS icons?
iOS app icons must be opaque. If your source is transparent, choose white or a custom background colour so the asset catalog does not reject it.
What does the Android adaptive option actually produce?
Five 108 dp foreground layers with the artwork scaled into the 66 dp safe zone, a background layer (colour resource or full-bleed image) and mipmap-anydpi-v26 XML for the launcher. Without that option, only the legacy ic_launcher PNGs are generated.
Which iOS format should I choose?
Use “universal” for Xcode 14 and later — it is a single 1024 px image. Choose “legacy” for projects that still target Xcode 13 or earlier, which expects the 18-slot catalogue.
How do I install the Linux icons?
Copy the hicolor folder into ~/.local/share/icons/ (or /usr/share/icons/), run gtk-update-icon-cache on that directory, and reference the icon by name from your .desktop file.
Does this replace the PNG to ICO tool?
No. The existing PNG to ICO converter stays available and unchanged; this tool simply covers all platforms in one bundle.
Can I generate icons for several images at once?
Yes. Drop multiple images (or pick several at once) and click generate — each image is processed into its own platform set, and “Download all sources” produces one ZIP with a folder per image.
Found an issue with this tool?
Report a problem