Lyhyt vastaus
RoundCut käyttää hybridiarkkitehtuuria: useimmat työkalut toimivat kokonaan selaimessasi ilman latausta, ja muutama lähettää yhden verkkopyynnön oman infrastruktuurimme kautta, kun selain ei pysty vastaamaan laatuun, aina näkymättömän asiakaspuolen varajärjestelmän kanssa. Kerromme sinulle, millä polulla olet, jokaisessa työkalussa ja tällä sivulla.
Alla oleva taulukko on edustava, ei tyhjentävä (uusia työkaluja julkaistaan säännöllisesti). Se näyttää yhden esimerkin kustakin polkutyypistä:
| Esimerkkityökalu | Missä työ tapahtuu |
|---|---|
| Ympyrärajaus (vain selain) | 100 prosenttia selaimessasi, Canvas API. Ei latausta, toimii offline-tilassa. |
| Compress-esikatselu (vain selain) | 100 prosenttia selaimessasi, canvas.toBlob. Ei latausta. Liukusäädin pysyy välittömänä. |
| Compress lopullinen lataus (koskettaa palvelinta) | Yksi edestakaisreitti palveluumme osoitteessa api.roundcut.com.br (Fastify, sharp, libvips VPS:llä Saksassa), selaimen varajärjestelmällä. |
| Poista tausta (koskettaa palvelinta) | Yksi edestakaisreitti Cloudflare Workerille, joka ajaa BiRefNetiä Cloudflaren edge-näytönohjaimilla, selaimesi WebAssembly-varajärjestelmällä, kun pilvi ei ole tavoitettavissa. |
Rajaus, koon muuttaminen, formaatin muunnos (paitsi AVIF-koodaus) ja Compress-esikatselu toimivat kaikki täysin selaimessasi. Taustan poisto, Compress-lataus, tekoälysuurennus, AVIF-koodaus ja usean kuvan PDF lähettävät kukin yhden pyynnön ja palautuvat selaimeen, kun pilvi ei ole tavoitettavissa.
Voit varmistaa asiakaspuolen väitteet noin 30 sekunnissa: avaa DevTools → Network, tyhjennä loki, ja käytä sitten vain selainta käyttävää työkalua, kuten Ympyrärajausta tai Compress-esikatselun liukusäädintä, näet, ettei yksikään kuvasi tavuja kantava pyyntö poistu sivulta. Palvelinta koskettavissa työkaluissa näet tarkalleen yhden latauksen toimintoa kohden, nimettyihin päätepisteisiin.
Miksi hybridi
Useimmat verkossa toimivat kuvatyökalut sijaitsevat toisessa ääripäässä: lähetä-kaikki-palvelimelle (odotat edestakaisreittejä ja ylläpitäjä säilyttää tiedostosi) tai kaikki-selaimessa (maksat laadussa ja nopeudessa koodaus- ja tekoälyvaiheissa). Kumpikaan ääripää ei voita kaikkialla.
Valitsimme asiakaspuolen siellä, missä selaimet ovat jo erinomaisia,
<canvas>-elementti hoitaa rajauksen, kierron, koon muuttamisen ja häviöllisen
esikatselukoodauksen JPG- ja WebP-muodoissa, ja palvelinpuolen siellä, missä selain
yhä häviää mitattavasti:
- Kuvanpakkaus, lopullisessa latauksessa. Palvelinpuolen
sharp+libvips 8.17tuottaa tiedostoja, jotka ovat 10 - 15 prosenttia pienempiä tavu tavulta kuin selaimen enkooderit samalla visuaalisella laadulla, ja antaa pääsyn AVIF:n nopeus- ja krominasäätöön sekä JPEG XL -tulosteeseen, jota selain ei tarjoa. Liukusäädin ja esikatselu toimivat yhä selaimessasi, joten säätäminen pysyy välittömänä, vain “Lataa”-napautus kulkee palvelumme kautta. - Tekoälypohjainen taustan poisto ja tekoälysuurennus, oletuspolulla. Mallit (BiRefNet segmentointiin, superresoluutio suurennukseen) tarvitsevat oikean näytönohjaimen valmistuakseen sekunneissa. Selaimen varajärjestelmät toimivat, mutta ovat hitaampia ja tuottavat näkyvästi karkeamman tuloksen hiuksissa, turkissa ja hienoissa reunoissa.
- AVIF-koodaus, muunnoksessa. Selaimen AVIF-enkooderi on hidas joillakin laitteilla, joten AVIF-tuloste lähettää yhden pyynnön pakkaus-Workerille, selaimen pääsäikeen koodaus varajärjestelmänä.
Kustannus, jonka hyväksymme ollaksemme palvelinpuolella näillä poluilla, on yksi edestakaisreitti toimintoa kohden. Kustannus, jonka vältämme pysymällä asiakaspuolella kaikkialla muualla, on edestakaisreitin maksu työnkulun nopeimmin toistuvissa osissa.
Putki, vaihe vaiheelta
1. Valitset tiedoston
Tiedostonvalitsimen, vedä-ja-pudota-toiminnon tai liittämisen kautta selain antaa
JavaScriptille File-objektin. JavaScript lukee tavut käyttäen FileReader-objektia
tai Blob.arrayBuffer()-metodia. Tässä vaiheessa tiedostoa ei missään vaiheessa
lähetetä verkon yli, riippumatta siitä, mitä työkalua käytät.
2. Selain dekoodaa kuvan
Nykyaikaiset selaimet dekoodaavat JPG-, PNG-, WebP-, GIF- ja AVIF-muodot natiivisti.
Käytämme createImageBitmap()-metodia muuttaaksemme raakatavut bittikartaksi, jolla
näytönohjain voi työskennellä, pääsäikeen ulkopuolella. Selaimissa, jotka eivät
dekoodaa HEIC:tä natiivisti, palaudumme WebAssembly-dekooderiin, joka toimii
paikallisesti selaimessasi.
3. Työkalu tekee tehtävänsä, tässä polut eroavat
- Vain selaintyökalut (rajaus, koon muuttaminen, formaatin muunnos PNG/JPEG/WebP-muotoon, Compress-esikatselu). Canvas 2D -pikselimuunnos tai WebAssembly-koodekki koodaa bittikartan uudelleen paikallisesti. Tulos on valmis ilman mitään latausta. Cropper.js hoitaa vuorovaikutteisen rajauskehyksen rajaustyökaluille, ja
canvas.toBlobhoitaa esikatselun uudelleenkoodauksen. Kokonaan selaimessasi. - Compress, lataus. Kun napautat “Lataa”, kuva lähetetään kerran osoitteeseen
api.roundcut.com.br(Fastify-palvelu, joka toimii VPS:llä Saksassa Hostingerin ylläpitämänä, Node 24,sharp 0.34,libvips 8.17, samat C-kirjastot, joita Squoosh käyttää palvelinpolullaan). Se koodataan uudelleen samoilla parametreilla, jotka asetit esikatselussa, ja tavut suoratoistetaan takaisin selaimeesi. Palvelu pitää vuokralaiseristettyä, sisältöosoitteista välimuistia (syöttötavujen ja parametrien hajautus) rajattuna 500 megatavuun, joten saman kuvan lataaminen uudelleen samoilla asetuksilla toistaa välimuistissa olevat tavut, välimuistia ei indeksoida sinun, IP:n tai tiedostonimen mukaan. Jos palvelu ei ole tavoitettavissa, työkalu palautuu selaimen esikatselu-blob-versioon. - Poista tausta, oletuspilvipolku. Kuva ladataan kerran Cloudflare Workerille, vaiheistetaan yksityiseen R2-säiliöön, käsitellään Cloudflaren
cf.image.segment-muunnoksella, joka ajaa BiRefNet-mallia Cloudflaren edge-näytönohjaimilla, ja leikkaus suoratoistetaan takaisin. Vaiheistettu R2-objekti poistetaan tunnin sisällä R2-elinkaarisäännöllä, lopputuloksesta riippumatta. Tyypillinen kuva valmistuu 1 - 3 sekunnissa. Päivittäiset IP-kohtaiset rajat ja 5 megatavun latausraja pitävät ilmaisen tason kestävänä. - Muut pilvituetut työkalut (tekoälysuurennus, AVIF-koodaus, usean kuvan PDF) noudattavat samaa muotoa: yksi pyyntö nimettyyn infrastruktuuriin (pilvikuva-API superresoluutioon, pakkaus-Worker AVIF-koodaukseen, VPS-palvelumme usean kuvan PDF:ään), tulos suoratoistetaan takaisin, ja näkymätön selaimen varajärjestelmä, jos kyseinen pyyntö epäonnistuu.
- WebAssembly-varajärjestelmä. Jos kyseinen pilvipolku ei ole tavoitettavissa (verkkosi katkeaa, olet tiukan palomuurin takana, päivittäinen kiintiö on täynnä tai tiedosto ylittää pilvirajan), työkalu vaihtaa näkymättömästi paikalliseen malliin tai koodekkiin, joka toimii selaimessasi, esimerkiksi taustanpoistomalliin ISNet ONNX Runtime Webin kautta WebAssemblyn avulla. Ensimmäinen ajo lataa mallin ja on hitaampi, seuraavat ajot ovat nopeampia. Ei latausta näillä varapoluilla, voit varmistaa sen DevToolsissa.
4. Lataat tuloksen
Tulosbittikartta koodataan Blob-objektiksi, kääritään object URL-osoitteeseen ja
tarjotaan selaimesi vakiotallennusvalintaikkunalle. Tiedosto ilmestyy levyllesi.
Miten varmistat sen itse
Valitse kumpi haluat:
Tapa 1. Tarkkaile Network-välilehteä
- Avaa RoundCut uudessa välilehdessä ja avaa DevTools → Network.
- Käytä vain selain -työkalua, Ympyrärajausta tai Compress-esikatselun liukusäädintä. Näet pyyntöjä vain HTML/CSS/JS/fonteille, sekä asiaankuuluvat WebAssembly-moduulit ensimmäisellä käytöllä. Yksikään pyyntö ei kanna kuvasi tavuja.
- Käytä nyt palvelinta koskettavaa työkalua, Compress → Lataa tai Poista tausta. Näet tarkalleen yhden
POST-pyynnön, joka kantaa kuvaasi, ja yhden vastauksen, joka palaa tuloksen kanssa. Vie osoitin pyynnön päälle nähdäksesi koon ja ajoituksen.
“Initiator”-sarake kertoo sinulle, mikä skripti laukaisi kunkin pyynnön, ja “Type”-sarake kertoo, mitä lähetettiin. Emme piilota kumpaakaan.
Tapa 2. Käytä työkaluja offline-tilassa
- Lataa mikä tahansa RoundCut-työkalusivu. Käytä Poista tausta -työkalua kerran pieneen kuvaan, jotta selaimen ISNet-malli tallentuu välimuistiin.
- Avaa DevTools → Network → rastita Offline (tai sammuta Wi-Fi).
- Lataa sivu uudelleen, staattiset resurssit ovat välimuistissa, joten se latautuu yhä.
- Kokeile työkaluja:
- Vain selain -työkalut (Ympyrärajaus, koon muuttaminen, Compress-esikatselu) jatkavat toimintaa, ne eivät koskaan tarvinneet verkkoa.
- Compress-lataus palautuu selaimen esikatselu-blob-versioon (hieman vähemmän tehokas koodaus, mutta toimiva).
- Poista tausta palautuu ISNet WebAssembly -malliin ja toimii ilman mitään lähtevää pyyntöä.
Jos työkalut toimivat offline-tilassa (pilvituetut hieman heikennettyinä, vain selain -työkalut identtisinä), niin määritelmän mukaan yksikään palvelin ei nähnyt kuvaasi.
Mitä näemme ja mitä emme
Vain selain -poluilla emme näe mitään kuvastasi. Ei ole pyyntöä katsottavaksi, ei välimuistia sen tallentamiseen, ei lokiriviä läpikäytäväksi.
Palvelinpuolen poluilla:
- Pakkaus- ja PDF-palvelu näkee kuvan tavut koodauksen ajan (tyypillisesti muutaman sadan millisekunnin), pitää sisältöosoitteisen välimuistimerkinnän välimuistin TTL:n ajan, ja siinä se. Välimuistia ei indeksoida käyttäjän, IP:n, tiedostonimen tai minkään tunnisteen mukaan, jota voisimme käyttää löytääksemme “sinun” kuvasi. Emme kirjaa kuvan sisältöä. Koodauspalvelu on jaettu samojen kahden vuokralaisen kesken, joita v1 palveli ennen siirtymää, vuokralaiskohtaisella CORSilla, nopeusrajoilla ja HMAC-allekirjoitetuilla kanonisilla URL-osoitteilla.
- Poista tausta ja muut tekoälypolut näkevät kuvan vaiheistuslatauksen ja mallikutsun ajan (tyypillisesti muutaman sekunnin), minkä jälkeen vaiheistettu kopio poistetaan R2-elinkaarisäännöllä. BiRefNet-malli toimii Cloudflaren omassa infrastruktuurissa, ei ulkoisessa remove.bg / fal.ai / Replicate -tyyppisessä API:ssa.
Jokaisella polulla analytiikkatoimittajamme (Cloudflare Web Analytics) tallentaa koostettua tietoa sivunäytöistä. URL, maa, selainperhe, Core Web Vitals. Ei evästeitä, ei pysyviä tunnisteita, ei mitään henkilöön sidottua.
Työkaluille, jotka lataavat WebAssembly-moduulin ensimmäisellä käytöllä (HEIC-dekooderi, ISNet ONNX -malli), hosting-toimittajamme näkee, että joku haki moduulin, samalla tavalla kuin se näkee heidän hakevan CSS-tiedoston. Itse moduuli ei sisällä mitään tietoa kuvastasi.
Täysi tietoluettelo on tietosuojakäytännössämme.
Teknologiapino
Uteliaille:
- Astro, staattinen sivustogeneraattori. Jokainen sivu toimitetaan puhtaana HTML:nä, jossa on asteittain parannettuja JavaScript-”saarekkeita” vain siellä, missä vuorovaikutteiset työkalut sijaitsevat.
- Vanilla CSS mukautetuilla ominaisuuksilla, ei Tailwindia, ei CSS-in-JS:ää. Koko suunnittelujärjestelmä on yksi
tokens.css-tiedosto. canvas.toBlob/<canvas>. JPEG-, PNG-, WebP-, AVIF-koodaus (selaimen tukemana) vain selaintyökaluissa, sekä kaikki rajaus- ja koonmuutostyö.- Cropper.js, rajaussuorakulmion vuorovaikutuskerros.
- ONNX Runtime Web, ajaa ISNet WebAssembly -varajärjestelmän Poista tausta -työkalulle.
- Cloudflare Pages, isännöi staattisen koonnoksen, tarjoaa sen edge-verkosta.
- Cloudflare Workers + R2 +
cf.image.segment(BiRefNet), Poista tausta -työkalun oletusputki. - Fastify +
sharp 0.34+libvips 8.17Node 24:ssä, pakkaus- ja PDF-palvelu osoitteessaapi.roundcut.com.br, Hostinger-VPS:llä Saksassa. - Cloudflare Web Analytics, koostetut, evästeettömät sivunäyttölaskelmat.
Selaintuki
Jokainen työkalu toimii Chromen, Firefoxin, Safarin ja Edgen uusimmassa ja
edellisessä versiossa, sekä työpöydällä että mobiilissa. Sivusto käyttää asteittaista
parantamista: missä selain tukee uudempaa API:a (esimerkiksi showSaveFilePicker,
OffscreenCanvas), käytämme sitä, missä se ei tue, palaudumme vanhempaan
vastineeseen. Ei ole mitään “selaintasi ei tueta” -seinää.
Ainoat ehdottomat vaatimukset ovat JavaScript (mihin tahansa työkaluun) ja verkkoyhteys (vain kun käytät pilvituettua työkalua sen oletuspolulla, vain selain -työkalut toimivat täysin offline-tilassa ensimmäisen sivulatauksen jälkeen).
Kysymyksiä
Jotain mitä emme käsitelleet? Lähetä sähköpostia osoitteeseen support@roundcut.app. Tekniset kysymykset ovat tervetulleita.