One image set for Chrome Web Store and Edge Add-ons: sizes

Both stores list a 440 x 280 small tile and a 1400 x 560 marquee. Edge adds 640 x 480 and 1280 x 800 screenshots, so one Sume master set can serve both.

5 min readSume
All posts

The Chrome Web Store and Microsoft Edge Add-ons agree on two promotional tile sizes: a 440 x 280 small tile and a 1400 x 560 large tile or marquee. Their logo rules differ slightly, with Edge recommending 300 x 300 and a 128 x 128 minimum. If you ship one extension to both, one master tile and one marquee from Sume cover both stores, and only the logo and screenshots need store-specific checks.

Side by side

The two pages were read on the same day. Chrome's promotional tile page marks the small tile required and the marquee optional; Edge marks both optional.

Chrome Web Store and Edge Add-ons images (read 2026-10-03)
AssetChrome Web StoreEdge Add-ons
Small promo tile440 x 280440 x 280
Large tile or marquee1400 x 5601400 x 560, PNG
Logo or icon128 x 128 icon1:1, 300 x 300 recommended, 128 x 128 minimum
ScreenshotsSee the Chrome pageUp to 6, 640 x 480 or 1280 x 800

What this means for the generation plan

Make one 3:2 master for the small tile and one 21:9 master for the large tile, both on a model that lists those ratios, such as FLUX.2 Pro in the catalog. Crop each to the target and save. The same files then upload to both stores. For the logo, generate a 1:1 image at full resolution, save a 300 x 300 file for Edge, and make the 128 x 128 icon with padding for Chrome as described in the 128 px padding post.

One script for both tiles

This reuses the crop in one function and writes both files. Run it twice with different ratio and prompt arguments.

import os, io, requests
from PIL import Image
r = requests.post(
    "https://api.sume.com/v1/images",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json={"model": "black-forest-labs/flux.2-pro", "aspect_ratio": "21:9", "prompt": "wide scene of floating browser windows, saturated colors, no text"},
    timeout=90,
)
r.raise_for_status()
if r.status_code != 200:
    raise SystemExit("202: read the finished job from /v1/jobs/{id}/result")
img = Image.open(io.BytesIO(requests.get(r.json()["data"][0]["url"], timeout=60).content))
w, h = img.size
target = 1400 / 560
if w / h > target:
    nw = round(h * target)
    img = img.crop(((w - nw) // 2, 0, (w - nw) // 2 + nw, h))
else:
    nh = round(w / target)
    img = img.crop((0, (h - nh) // 2, w, (h - nh) // 2 + nh))
img = img.convert("RGB").resize((1400, 560), Image.LANCZOS)
img.save("marquee.png")
w, h = img.size
box_w = round(h * 440 / 280)
left = (w - box_w) // 2
small = img.crop((left, 0, left + box_w, h))
small.resize((440, 280), Image.LANCZOS).save("small-tile-from-marquee.png")

Order of work

Start with the images both stores share, since they cost the least rework. Generate the 21:9 master and the 3:2 master first and crop them to 1400 x 560 and 440 x 280. Then do the logo, which differs: Edge recommends 300 x 300 with a 128 x 128 minimum, and Chrome's icon is 128 x 128 with 96 pixel artwork and padding. Make the 300 pixel file first and derive the 128 pixel file from the same master. Last, take screenshots, which are real captures; Edge accepts only 640 x 480 or 1280 x 800, so export those two sizes from your capture tool. Keep one folder per store so an update to one listing does not overwrite the other, and note the date you checked each page, because both stores can change their rules.

Limits

Cropping a 1400 x 560 strip down to 440 x 280 keeps only the middle band, so a separate 3:2 generation looks better if the subject matters. The script above is a shortcut for placeholders. Each store can change its rules, so recheck both pages before a release.

If a store later changes a size, only the crop step changes; the generated masters stay valid, which is the reason to keep them at the larger size the API returned.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume