generationstringrequiredThe id of the set to export: the random segment of its download URL, as list_recent_generations returns it. One batch per call; a set that grew over several calls is exported batch by batch, and the trees merge by folder.
Turn a set you already generated into app and site icons: one zip with a drop-in tree for the web, iOS, Android and Flutter, each at every density it needs. export_icons is free to call.
export_iconsName a base size, the 1x, and you get every subject at 1x, 2x and 3x (and 1.5x and 4x for Android) in one zip: the four platform trees, a viewer that shows every file at its true size, and a ledger. An icon is the set as you have it delivered, scaled down: its shape, margin and subject scale all carry, and the base size is the batch's longest side, so no file is bigger than the number you name. Change the delivery with edit_image_set first if you want the icons different.
# A 64px icon export from an existing set
export_icons(
generation: "8a617b9dd9cf51bed87878cc",
iconSize: 64
)
# The same set at 96px, as WebP (the iOS tree comes as PNG)
export_icons(generation: "8a617b9dd9cf51bed87878cc", iconSize: 96, format: "webp", quality: 85)Or, in plain language to your AI:
Use Logospell to export my last image set as 64px icons for iOS and Android.generationstringrequiredThe id of the set to export: the random segment of its download URL, as list_recent_generations returns it. One batch per call; a set that grew over several calls is exported batch by batch, and the trees merge by folder.
iconSizeintegerrequiredThe base size: one even number from 16 to 256 that each platform reads in its own unit (CSS px on the web, pt on iOS, dp on Android). It sizes the batch, not each file: every icon is the delivered image scaled so the batch's longest side is this number, so nothing exceeds it. The export holds files up to 3x it (4x on Android).
formatstringoptionalpng, webp, or jpg. iOS asset catalogs take no WebP, so a webp export's iOS tree is PNG (the ledger says so). jpg has no transparency: rejected for a transparent set unless the set is currently on a background color.
qualityintegeroptional1 to 100 for webp and jpg; ignored for png.
How big can the icons be? Every set has a crisp base size: the largest at which every density, up to 4x, stays sharp. It comes back with the generation, sits on the set's summary line, and list_recent_generations reports it. Larger sizes still export; the ledger then says, per platform, which files have some blur and by how much. The number depends on how many subjects a batch holds, fewer meaning bigger. For planning a new set:
1 to 4 subjectsCrisp at every density up to 256px, the largest base size there is.
5 or 6 subjectsUp to about 192px.
7 to 9 subjectsUp to about 180px.
10 to 12 subjectsUp to about 160px.
13 to 18 subjectsUp to about 136px.
Those are estimates. A set's own number is exact.
For a base size of 64; the 64 in each name is whatever iconSize you gave.
web/name_64.png, name_64@2x.png, name_64@3x.png, srcset.html
One <img srcset> line per icon, ready to paste.
ios/Logospell.xcassets with one imageset per icon (1x, 2x, 3x) and its Contents.json
Drop the catalog into Xcode; every icon is an image set.
android/res/drawable-mdpi through xxxhdpi, ic_name_64.png in each
Five densities (1x, 1.5x, 2x, 3x, 4x); names carry Android's ic_ prefix.
flutter/assets/icons/name_64.png, 2.0x/, 3.0x/, pubspec-snippet.yaml
The pubspec lines list the 1x files; Flutter picks the denser ones.
Names carry the base size (name_64, name_128), so two sizes never collide in one catalog or res/ tree. One batch and one size per call; another size is another free call. Exports expire with their set. The same control is on each set on the generations page.