Home
Logospell · Docs

Export set tool

Turn a set you already generated into files for an app or site at the base size you name: icons from an image or character set, whole illustrations from an illustration set. export_set is free to call.

scroll ↓
01 / 01 · How it works
The export tool

export_set

Name a base size, the 1x, and you get every image 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 that lists every file and says, per platform, whether any has some blur. Files are cut from the set's full-resolution source and the base size is the batch's longest side at 1x.

An image or character set exports as icons, laid out the way the set is currently delivered: its shape, margin and subject scale all carry. Where a density needs more pixels than the source holds, the subject is enlarged and the ledger marks that tree soft. Change the delivery with edit_set first if you want the icons different.

An illustration set exports its scenes whole, at their own shape, for the illustrations in an app or site. It exports only up to its crisp base size, so every file stays sharp.

A set generated before its source was kept cannot be exported.

export_set
# A 64px export from an existing set
export_set(
  generation: "8a617b9dd9cf51bed87878cc",
  baseSize: 64
)

# The same set at 96px, as WebP (the iOS tree comes as PNG)
export_set(generation: "8a617b9dd9cf51bed87878cc", baseSize: 96, format: "webp", quality: 85)

Or, in plain language to your AI:

ask
Use Logospell to export my last image set as 64px icons for iOS and Android.
generationstringrequired

The 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.

baseSizeintegerrequired

The base size: one even number that each platform reads in its own unit (CSS px on the web, pt on iOS, dp on Android), from 16 to 256 for an image or character set and from 16 to its crisp base size for an illustration set. It sizes the batch, not each file: every file 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).

formatstringoptional

png, 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 while the set's background is transparent.

Default: the set's current format
qualityintegeroptional

1 to 100 for webp and jpg; ignored for png.

Default: the set's current quality, or 90 when it has none

What comes back

The result's text also links the export's viewer online, beside the zip.

generationstring

The id of the set that was exported.

zipURLstring

The export zip. Fetch and extract it right away; it expires with the set.

expiresAtstring

When the zip expires: the set's own download expiry.

baseSizeinteger

The base size exported: the batch's longest side at 1x.

formatstring

The export's format. A webp export's iOS tree is PNG.

qualityinteger

The quality used for webp or jpg; absent for png.

ledgerobject

The export's account of itself, also in the zip as ledger.json. Under targets, per tree (web, ios, android, flutter): its densities, format, largest file and fidelity, crisp when no file enlarges an image past its source pixels and soft (some blur) otherwise. A soft tree adds enlargedUpTo, the largest enlargement past source pixels as a factor, and enlargedAt, each density that enlarges an image with its largest factor. Under files, every file with its tree, image name, density and pixel size.

How big can an export be? A set's crisp base size is the largest at which every density, up to 4x, stays sharp. The generation's result states it, and get_generations, list_recent_generations and edit_set report it as crispBaseSize, absent when no base size stays crisp.

An illustration set's is a quarter of the longest side its scenes were drawn at, and it is also the largest base size the set exports at.

An image or character set's shows on the site with its delivery settings, as "icons crisp to" a size, and edits to size, canvas, margin or sizing can move it. Larger sizes still export, up to 256; the ledger then says, per platform, which files have some blur and by how much. The number depends on how many subjects or variations a batch holds, fewer meaning bigger. For planning a new image or character set:

1 to 4 subjects

Crisp at every density up to 256px, the largest an image or character set takes.

5 or 6 subjects

Up to about 192px.

7 to 9 subjects

Up to about 180px.

10 to 12 subjects

Up to about 160px.

13 to 16 subjects

Up to about 136px.

Those are estimates. A set's own number is exact.

What is in the zip

For a base size of 64; the 64 in each name is whatever baseSize you gave. Names carry the base size, so two sizes never collide in one catalog or res/ tree; another size is another free call.

web/

name_64.png, name_64@2x.png, name_64@3x.png, srcset.html

One <img srcset> line per image, ready to paste.

ios/

Logospell.xcassets with one imageset per image (1x, 2x, 3x) and its Contents.json

Drop the catalog into Xcode; every image is its own imageset.

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 for icons and img_ for an illustration set's scenes.

flutter/

assets/icons/name_64.png, 2.0x/, 3.0x/, pubspec-snippet.yaml

An illustration set's files go under assets/images/ instead. The pubspec lines list the 1x files; Flutter picks the denser ones.

The same control is on each set on the generations page; see it on the site.