Screenshot Beautifier & Showcase Images
Deterministic geometry / layer-model plans for backgrounds, padding, rounded corners, shadows, browser frames and social presets, with a verified 1x/2x pixel budget. No real Canvas rendering or image encoding is wired this round: the output is a verifiable JSON export plan.Processed locally
Operations
Screenshot beautifier
Plans solid/gradient backgrounds, padding, corner radius, shadow and transparent-image compositing from a geometry model; verifies that preview and export layers agree across padding/radius variants. Produces a deterministic JSON plan, not image bytes.
Browser / device frames
Describes browser chrome with CSS-like geometry (44 px top, 12 px elsewhere); device frames need licensed artwork. Failed, missing, pending or unlicensed assets degrade to an exportable frameless plan, never a blank canvas.
Social size presets
Fits the screenshot into fixed 1200×630, 1080×1080, 1080×1920 or 1600×900 canvases using contain-fit; padding and radius still apply; export pixels are exactly the preset size × 1x/2x.
Real examples and limits
Initial input budget: 15 MiB / 16 MP (4000×4000 is exactly at the boundary; 4001×4000 is rejected). Export has a separate 64 MP total-pixel ceiling and a 16384 px side limit, checked BEFORE any canvas allocation and never returning a blank canvas. Preview is capped at 1200 px on its longest side independently; 1x/2x are exact integer multiples of the design canvas. Only PNG/WebP/JPEG are accepted as format fields; transparent + JPEG fails explicitly instead of producing a black matte. Failed/missing/pending/unlicensed frame assets degrade to an exportable frameless plan. This round does not decode real File/Blob inputs, does not create a Canvas 2D context and does not emit PNG/WebP image bytes. Related sites img/draw/design are planned config entries with no dead links; duplicate PDF/OCR/compress/cutout/video entries are replaced by related recommendations; no login, desktop download, credits or payment.
FAQ
Can I export a real PNG/WebP image now?
No. There is no browser, Canvas 2D context, image decoder or encoder this round, so run() returns only a deterministic JSON export plan (layers, draw order, compositing strategy, pixel budget, file name), with render.performed=false, downloadableImage=false and imageBytes=null. A real File/Blob produces DECODER_UNAVAILABLE; nothing is fabricated as an image.
Do previews match exports with different padding / corner radii?
Yes. Both derive from one design-space layer list by uniform scaling; layerSignature is a scale-invariant relative-geometry fingerprint. Combinations such as padding=0/24/96/256 with radius=0/12/64/200 each match between preview and export, while different parameters produce different signatures.
Will a transparent PNG get a black edge?
No. The compositing strategy explicitly resets to transparent with clearRect(rgba(0,0,0,0)), draws the chosen background first, then draws the image with source-over inside a roundRect clip; implicitBlackFills=0. JPEG has no alpha: a transparent background returns OPAQUE_BACKGROUND_REQUIRED instead of silently flattening to black.
How do I add an image on mobile without clipboard permission?
The file picker is always visible and usable. Ctrl/Cmd+V works only in a secure context with clipboard read support and a granted permission; denied/unsupported/prompt/empty clipboard transitions the state machine to awaiting-file and recommends choosing a file. allowFileSelect and fileInputVisible stay true in every scenario. An injected geometry model rather than a real File is still required this round.
What happens if 2x is too large?
checkExportBudget computes width×height before allocating any canvas: exceeding 64 MP returns EXPORT_PIXEL_LIMIT and a side above 16384 px returns CANVAS_SIDE_LIMIT; phases stop at budget with no layers/plan and no canvas. Example: a 4000×4000 input with 512 px padding yields a 5024×5024 1x canvas, so 2x = 100.96 MP is blocked early with a suggested 1x.
Why are PDF / OCR / compress / cutout / video entries missing?
They duplicate other sites. Those public routes were replaced by related-recommendation config for img/draw/design (planned sites render no clickable links). Only beautify/frame/social-size remain here; there is also no unimplemented login, desktop download, credits or payment entry.