Android · iOS — System-level long screenshot

Any app, all the way down.

Chat histories, late-night threads, checkout pages… if you can scroll it, Stitchly stitches it into one tall image. Capture while you scroll — stop, and it finishes itself. No overlap picking, no third-party tools.

滚动一次 · 全部拼好

3capture modes
~30msalignment per frame
100%on-device, never uploaded
0watermarks · no sign-up
Three ways

Three ways in, one image out

System-level capture of any app: two system channels plus one zero-permission fallback, all inside a single app.

Live capture

Live capture

Grant screen capture once, switch to the target app and scroll gently — pause for a second and it stitches itself. Turn on auto-scroll and the page glides on its own.

ANDROID 8.0+

Record & extract

Record & extract

Record with the system screen broadcast while you scroll; the app extracts, dedupes and aligns frames automatically. The only channel iOS allows for capturing other apps.

iOS 15.0+

Album stitch

Album stitch

Already have a burst of screenshots? Select them in order and the overlaps are detected for you — the status bar appears only once. Identical on both platforms, no sensitive permissions.

ANDROID · iOS
How it works

What happens the second you stop

One C++ stitching core shared by both platforms: no third-party image libraries, and every computation stays on your device.

01 · CAPTURE

Continuous frames

One frame every ~0.12s — consecutive frames naturally overlap by a lot.

02 · ALIGN

Banded alignment

Each frame splits into 4 vertical bands that vote for the best overlap; the median wins, so GIFs and carousels get outvoted. A parabola fit refines to sub-pixel.

03 · DEDUCE

Smart dedupe

Duplicate frames and the page end are detected: frames adding fewer than 8 pixels are dropped — overshooting a long list is fine.

04 · EXPORT

Roll & export

Status and navigation bars are kept exactly once each; export a lossless PNG, save or share it directly.

Why it's fast and steady

Alignment searches only one dimension: each frame is downscaled to a 200px-wide grayscale, the overlap is found with integral-image-accelerated NCC, then compositing happens at full resolution. About 30ms per frame pair — even a hundred-frame session takes seconds.

ncc(shift) = cov(A[-s:], B[:s]) / (σ_A · σ_B)
shift* = median( band₁, band₂, band₃, band₄ )
peak = true overlap 0 frame height NCC
FAQ

Straight answers, up front

Why the screen-capture / broadcast permission?+
It's the only channel the OS allows for reading other apps' screens. After the grant, frames stay in on-device memory and a local cache folder, used for stitching and then cleaned up — Stitchly ships no networking code at all.
Why can't iOS stitch live like Android?+
iOS doesn't let third-party apps read other apps' screens in the background — an Apple privacy design no app can bypass. The legitimate channel is the system screen broadcast, which is why iOS offers record-and-extract plus album stitching. Same results, one extra tap to stop.
Do GIFs and carousels break the stitch?+
Alignment votes across vertical bands: as long as the dynamic content doesn't span the full width, the clean bands outvote it. In the extreme case, the result page flags the number of unresolved seams.
Can I capture chat history? Will it lag?+
Yes — it's the most common use. Capture keeps one frame in memory; stitching reads frames from disk one by one, so even hundred-frame sessions won't blow up memory. For repetitive content, scroll slowly and steadily.
Tablets and landscape?+
v1 is tuned for portrait phone pages. Landscape and foldable support is planned — the alignment algorithm itself doesn't care about size; the work is in capture and UI.
Get Stitchly

Every long page, one tall image

v0.1 is code-complete on both platforms with the stitching core fully tested — on-device verification and store submission are underway.

[ placeholder buttons · real links land at release ]  ·  requires Android 8+ / iOS 15+