Sådan fungerer RoundCut

Teknisk detalje om, hvad hvert værktøj gør, hvor det kører, og hvordan du selv kan verificere det.

Det korte svar

RoundCut bruger en hybrid arkitektur: de fleste værktøjer kører helt i din browser uden upload, og en håndfuld sender en enkelt netværksforespørgsel gennem vores egen infrastruktur, når browseren ikke kan matche kvaliteten, altid med en usynlig reserveløsning på klientsiden. Vi fortæller dig, hvilken vej du er på, i hvert værktøj og på denne side.

Tabellen nedenfor er repræsentativ, ikke udtømmende (nye værktøjer lanceres jævnligt). Den viser et eksempel på hver type vej:

EksempelværktøjHvor arbejdet sker
Cirkelbeskæring (kun browser)100 procent i din browser, Canvas API. Ingen upload, virker offline.
Compress-forhåndsvisning (kun browser)100 procent i din browser, canvas.toBlob. Ingen upload. Skyderen forbliver øjeblikkelig.
Compress endelig download (berører serveren)En rundtur til vores tjeneste på api.roundcut.com.br (Fastify, sharp, libvips på en VPS i Tyskland), med en reserveløsning i browseren.
Fjern baggrund (berører serveren)En rundtur til en Cloudflare Worker, der kører BiRefNet på Cloudflares edge-GPU’er, med en WebAssembly-reserve i din browser, når skyen ikke kan nås.

Beskæring, ændring af størrelse, formatkonvertering (undtagen AVIF-kodning) og Compress-forhåndsvisningen kører alle fuldt ud i din browser. Fjernelse af baggrund, Compress-downloaden, AI-opskalering, AVIF-kodning og PDF med flere billeder sender hver en enkelt forespørgsel og falder tilbage til browseren, når skyen ikke kan nås.

Du kan bekræfte påstandene om klientsiden på cirka 30 sekunder: åbn DevTools → Network, ryd loggen, og brug så et værktøj, der kun bruger browseren, som Cirkelbeskæring eller Compress-forhåndsvisningsskyderen, du vil se nul forespørgsler, der bærer dine billedbyte, forlade siden. For værktøjerne, der berører serveren, vil du se præcis en upload per handling, til navngivne endepunkter.

Hvorfor hybrid

De fleste online billedværktøjer ligger på et yderpunkt: upload-alt-til-en-server (du venter på rundture, og operatøren beholder din fil), eller alt-i-browseren (du betaler i kvalitet og hastighed på koderings- og AI-trinnene). Ingen af yderpunkterne vinder overalt.

Vi valgte klientsiden, hvor browsere allerede er fremragende, <canvas>-elementet håndterer beskæring, rotation, ændring af størrelse og den tabsgivende forhåndsvisningskodning i JPG/WebP, og serversiden, hvor browseren stadig taber målbart:

  • Billedkomprimering, på den endelige download. sharp + libvips 8.17 på serversiden producerer filer, der er 10 til 15 procent mindre byte for byte end browserkodere ved samme visuelle kvalitet, og giver adgang til hastigheds- og kromatuning for AVIF og JPEG XL-output, som browseren ikke eksponerer. Skyderen og forhåndsvisningen kører stadig i din browser, så justering forbliver øjeblikkelig, kun trykket på “Download” går gennem vores tjeneste.
  • AI-fjernelse af baggrund og AI-opskalering, på standardvejen. Modellerne (BiRefNet til segmentering, superopløsning til opskalering) har brug for en rigtig GPU for at blive færdige på sekunder. Reserveløsningerne i browseren virker, men er langsommere og giver et synligt grovere resultat på hår, pels og fine kanter.
  • AVIF-kodning, på konvertering. AVIF-encoderen i browseren er langsom på nogle enheder, så AVIF-output sender en enkelt forespørgsel til komprimerings-Worker’en, med en kodning i browserens hovedtråd som reserve.

Den omkostning, vi accepterer for at være på serversiden på disse veje, er en rundtur per handling. Den omkostning, vi undgår ved at blive på klientsiden alle andre steder, er rundturgebyret på de dele af arbejdsgangen, der justeres hurtigst.

Rørledningen, trin for trin

1. Du vælger en fil

Gennem filvælgeren, træk-og-slip eller indsæt giver browseren JavaScript et File-objekt. JavaScript læser bytene med FileReader eller Blob.arrayBuffer(). På intet tidspunkt i dette trin sendes filen over netværket, uanset hvilket værktøj du bruger.

2. Browseren afkoder billedet

Moderne browsere afkoder JPG, PNG, WebP, GIF og AVIF nativt. Vi bruger createImageBitmap() til at gøre de rå byte til et bitmap, som GPU’en kan arbejde med, uden for hovedtråden. For HEIC på browsere, der ikke afkoder det nativt, falder vi tilbage til en WebAssembly-afkoder, der kører lokalt i din browser.

3. Værktøjet gør sit, det er her, vejene skilles

  • Værktøjer kun til browser (beskæring, ændring af størrelse, formatkonvertering til PNG/JPEG/WebP, Compress-forhåndsvisningen). En Canvas 2D-pixeltransformation eller en WebAssembly-codec genkoder bitmappet lokalt. Resultatet er klar uden nogen upload. Cropper.js håndterer den interaktive beskæringsramme til beskæringsværktøjerne, og canvas.toBlob håndterer forhåndsvisningskodningen. Helt i din browser.
  • Compress, download. Når du trykker “Download”, sendes billedet en enkelt gang til api.roundcut.com.br (en Fastify-tjeneste, der kører på en VPS i Tyskland drevet af Hostinger, Node 24, sharp 0.34, libvips 8.17, de samme C-biblioteker, Squoosh bruger på sin servervej). Det genkodes med de samme parametre, du satte i forhåndsvisningen, og bytene streames tilbage til din browser. Tjenesten holder en lejer-isoleret, indholdsadresseret cache (et hash af inputbytene og parametrene) begrænset til 500 MB, så genupload af samme billede med samme indstillinger afspiller de cachede byte, cachen er ikke indekseret efter dig, IP eller filnavn. Hvis tjenesten ikke kan nås, falder værktøjet tilbage til forhåndsvisnings-blob’en i browseren.
  • Fjern baggrund, standard skyvej. Billedet uploades en enkelt gang til en Cloudflare Worker, mellemlagres i en privat R2-spand, behandles af Cloudflares cf.image.segment-transformation, der kører BiRefNet-modellen på Cloudflares edge-GPU’er, og udklippet streames tilbage. Det mellemlagrede R2-objekt slettes inden for en time af en R2-livscyklusregel, uanset udfald. Et typisk billede bliver færdigt på 1 til 3 sekunder. Daglige grænser per IP og 5 MB uploadgrænse holder gratisniveauet bæredygtigt.
  • Andre skystøttede værktøjer (AI-opskalering, AVIF-kodning, PDF med flere billeder) følger samme form: en forespørgsel til navngiven infrastruktur (et sky-billede-API til superopløsning, komprimerings-Worker’en til AVIF-kodning, vores VPS-tjeneste til PDF med flere billeder), resultat streamet tilbage, og en usynlig reserveløsning i browseren, hvis den forespørgsel mislykkes.
  • WebAssembly-reserve. Hvis den relevante skyvej ikke kan nås (dit netværk falder ud, du er bag en streng firewall, den daglige kvote er fuld, eller filen overstiger skygrænsen), skifter værktøjet usynligt til en lokal model eller codec, der kører i din browser, for eksempel baggrundsfjernelsesmodellen ISNet via ONNX Runtime Web med WebAssembly. Den første kørsel downloader modellen og er langsommere, efterfølgende kørsler er hurtigere. Ingen upload på disse reserveveje, du kan bekræfte det i DevTools.

4. Du downloader resultatet

Output-bitmappet kodes til en Blob, pakkes ind i en object URL og tilbydes til browserens standard fil-gem-dialog. Filen dukker op på din disk.

Hvordan du bekræfter det selv

Vælg det, du foretrækker:

Metode 1. Hold øje med Network-fanen

  1. Åbn RoundCut i en ny fane, og åbn DevTools → Network.
  2. Brug et værktøj kun til browser, Cirkelbeskæring eller Compress-forhåndsvisningsskyderen. Du vil kun se forespørgsler efter HTML/CSS/JS/skrifttyper, plus de relevante WebAssembly-moduler ved første brug. Ingen forespørgsel vil bære dine billedbyte.
  3. Brug nu et værktøj, der berører serveren, Compress → Download eller Fjern baggrund. Du vil se præcis en POST, der bærer dit billede, og et svar, der kommer tilbage med resultatet. Hold markøren over en forespørgsel for at se størrelse og timing.

“Initiator”-kolonnen fortæller dig, hvilket script der udløste hver forespørgsel, og “Type”-kolonnen fortæller dig, hvad der blev sendt. Vi skjuler ingen af delene.

Metode 2. Brug værktøjerne offline

  1. Indlæs en hvilken som helst RoundCut-værktøjsside. Brug Fjern baggrund en enkelt gang på et lille billede, så ISNet-modellen i browseren caches.
  2. Åbn DevTools → Network → sæt flueben ved Offline (eller sluk for Wi-Fi).
  3. Genindlæs siden, de statiske aktiver er cachede, så den indlæses stadig.
  4. Prøv værktøjerne:
    • Værktøjer kun til browser (Cirkelbeskæring, ændring af størrelse, Compress-forhåndsvisningen) bliver ved med at virke, de havde aldrig brug for netværket.
    • Compress-download falder tilbage til forhåndsvisnings-blob’en i browseren (lidt mindre effektiv kodning, men funktionel).
    • Fjern baggrund falder tilbage til ISNet WebAssembly-modellen og virker uden nogen udgående forespørgsel.

Hvis værktøjerne virkede offline (de skystøttede lidt forringet, de kun til browser identiske), så har ingen server per definition set dit billede.

Hvad vi ser, og hvad vi ikke ser

På veje kun til browser ser vi intet om dit billede. Der er ingen forespørgsel at se på, ingen cache at gemme det i, ingen logline at gennemsøge.

På veje på serversiden:

  • Komprimerings- og PDF-tjenesten ser billedbytene under kodningen (typisk nogle få hundrede millisekunder), holder en indholdsadresseret cache-post i cachens TTL, og det er det. Cachen er ikke indekseret efter bruger, IP, filnavn eller nogen identifikator, vi kunne bruge til at finde “dine” billeder. Vi logger ikke billedindhold. Kodningstjenesten deles mellem de samme to lejere, v1 betjente før overgangen, med CORS per lejer, rategrænser og HMAC-signerede kanoniske URL’er.
  • Fjern baggrund og de andre AI-veje ser billedet under mellemlagringsuploaden og modelkaldet (typisk nogle sekunder), hvorefter den mellemlagrede kopi slettes af en R2-livscyklusregel. BiRefNet-modellen kører inde i Cloudflares egen infrastruktur, ikke på et eksternt API af typen remove.bg / fal.ai / Replicate.

På hver vej registrerer vores analyseudbyder (Cloudflare Web Analytics) aggregerede data om sidevisninger. URL, land, browserfamilie, Core Web Vitals. Ingen cookies, ingen vedvarende identifikatorer, intet knyttet til en person.

For værktøjer, der downloader et WebAssembly-modul ved første brug (HEIC-afkoderen, ISNet ONNX-modellen), ser vores hostingudbyder, at nogen hentede modulet, på samme måde som den ser dem hente CSS-filen. Selve modulet indeholder ingen information om dit billede.

Den fulde dataopgørelse findes i vores privatlivspolitik.

Teknologistakken

For de nysgerrige:

  • Astro, den statiske sitegenerator. Hver side leveres som ren HTML med progressivt forbedrede JavaScript-”øer” kun der, hvor interaktive værktøjer bor.
  • Vanilla CSS med brugerdefinerede egenskaber, ingen Tailwind, ingen CSS-in-JS. Hele designsystemet er en enkelt tokens.css-fil.
  • canvas.toBlob / <canvas>. JPEG, PNG, WebP, AVIF-kodning (hvor browseren understøtter det) i værktøjerne kun til browser, og alt beskærings- og størrelsesarbejdet.
  • Cropper.js, interaktionslaget for beskæringsrektanglet.
  • ONNX Runtime Web, kører ISNet WebAssembly-reserven til Fjern baggrund.
  • Cloudflare Pages, hoster det statiske build, serverer det fra edge.
  • Cloudflare Workers + R2 + cf.image.segment (BiRefNet), standardrørledningen til Fjern baggrund.
  • Fastify + sharp 0.34 + libvips 8.17 på Node 24, komprimerings- og PDF-tjenesten på api.roundcut.com.br, på en Hostinger-VPS i Tyskland.
  • Cloudflare Web Analytics, aggregerede, cookie-løse tællinger af sidevisninger.

Browserunderstøttelse

Hvert værktøj virker på den nyeste og forrige version af Chrome, Firefox, Safari og Edge, både desktop og mobil. Sitet bruger progressiv forbedring: hvor en browser understøtter et nyere API (for eksempel showSaveFilePicker, OffscreenCanvas), bruger vi det, hvor den ikke gør, falder vi tilbage til den ældre ækvivalent. Der er ingen “din browser understøttes ikke”-mur.

De eneste hårde krav er JavaScript (til ethvert værktøj) og en netværksforbindelse (kun når du bruger et skystøttet værktøj på dets standardvej, værktøjerne kun til browser kører fuldt ud offline efter den første sideindlæsning).

Spørgsmål

Noget vi ikke dækkede? Skriv til support@roundcut.app. Tekniske spørgsmål er velkomne.