Jawapan ringkasnya
RoundCut menjalankan setiap alat dalam pelayar anda menggunakan dua API natif pelayar: HTML5 Canvas API untuk operasi peringkat piksel, dan WebAssembly untuk kerja yang lebih berat — pengekodan/penyahkodan format imej dan inferens AI. Tiada apa-apa yang dimuat naik. Tiada apa-apa yang diproses di pelayan kami, kerana kami tidak mengendalikan pelayan yang menyentuh fail anda.
Anda boleh mengesahkan ini dalam masa kira-kira 30 saat: buka DevTools pelayar anda, beralih ke tab Network, kosongkan log, dan gunakan mana-mana alat. Satu-satunya permintaan rangkaian yang akan anda lihat adalah untuk aset tapak statik — HTML, CSS, JavaScript, fon, dan modul WebAssembly. Imej anda tidak pernah meninggalkan halaman.
Mengapa sisi klien
Kebanyakan alat imej dalam talian berfungsi dengan cara sebaliknya: anda muat naik, pelayan memproses, anda muat turun hasilnya. Model ini mempunyai beberapa kelemahan yang sudah diketahui — fail anda berada di mesin orang lain, anda menunggu dua kali perjalanan pergi balik, dan pengendali membayar setiap CPU-saat kerja, itulah sebabnya perkhidmatan tersebut cenderung menambah akaun, tera air, atau pelan berbayar.
Pelayar telah mampu melakukan sebahagian besar kerja ini secara asli selama bertahun-tahun. Elemen
<canvas> mengendalikan pemotongan, putaran, pengubahan saiz dan pengekodan semula;
WebAssembly membolehkan kami menjalankan pustaka C/Rust MozJPEG, libwebp, libavif dan Oxipng yang sama
yang digunakan oleh Squoosh, pada kelajuan hampir asli. Apabila kami melancarkan pembinaan semula 2026, pelayar
telah pun mengejar kit alat pengeditan imej desktop. Tiada lagi sebab untuk melibatkan pelayan.
Hasilnya ialah timbunan dengan tiga sifat yang saling memperkuat: privasi (fail anda tidak pernah meninggalkan peranti anda), kelajuan (tiada muat naik, tiada giliran, tiada perjalanan pergi balik ke pelayan) dan kos (kami menyediakan aset statik dari CDN dengan beberapa sen sebulan, tanpa mengira berapa ramai yang menggunakan alat-alatnya).
Saluran paip, langkah demi langkah
1. Anda memilih fail
Apabila anda memilih imej — melalui pemilih fail, seret dan lepas, atau tampal — pelayar
menyerahkan objek File kepada JavaScript. JavaScript membaca bait
menggunakan API FileReader atau Blob.arrayBuffer(). Pada
mana-mana titik dalam langkah ini, fail tidak dihantar melalui rangkaian.
2. Pelayar menyahkod imej
Pelayar moden boleh menyahkod JPG, PNG, WebP, GIF, AVIF dan (pada Safari dan
Chromium terbaru) HEIC secara asli. Kami menggunakan createImageBitmap() untuk menukar bait
mentah kepada bitmap yang boleh digunakan GPU, di luar benang utama. Untuk HEIC pada pelayar
yang tidak menyahkodnya secara asli, kami menggunakan penyahkod WebAssembly yang berjalan
secara tempatan dalam pelayar anda.
3. Alat melakukan tugasnya
Apa yang berlaku seterusnya bergantung pada alatnya. RoundCut kini mempunyai tiga:
- Circle Crop — transformasi piksel Canvas 2D dengan laluan klip bulatan. Bitmap dilukis ke dalam
<canvas>pada putaran dan zum yang dipilih, klip bulatan digunakan, dan bahagian dalam bulatan dibaca semula sebagaiImageData. Cropper.js mengendalikan bingkai tanaman interaktif. - Compress — mengekodsemula JPG, PNG, WebP atau AVIF menggunakan modul WebAssembly jSquash (MozJPEG, libwebp, libavif, Oxipng). Ini adalah kodek hulu yang sama yang digunakan oleh Squoosh. Mereka berjalan dalam
Web Workersupaya UI kekal responsif semasa foto berbilion piksel dikodkan, dan pratonton berdampingan membolehkan anda melihat pertukaran sebelum mengesahkan. - Remove Background — model AI kecil berformat ONNX (beberapa MB, dimuat turun sekali dan dicache) berjalan dalam pelayar anda melalui ONNX Runtime Web, dengan WebAssembly sebagai backend pelaksanaan. Pelaksanaan pertama memuat turun model; setiap pelaksanaan selepas itu adalah tempatan dan segera.
4. Anda memuat turun hasilnya
Bitmap output dikodkan ke dalam Blob, dibungkus dalam
object URL, dan ditawarkan kepada dialog simpan fail standard pelayar anda.
Di mana disokong, kami menggunakan File System Access API
supaya anda boleh memilih folder destinasi secara terus. Fail muncul pada cakera anda; tiada apa-apa
yang melalui pelayan.
Cara mengesahkan sendiri
Dakwaan “tiada muat naik” boleh disemak dalam dua minit. Pilih mana-mana kaedah yang anda suka:
Kaedah 1 — Perhatikan tab Network
- Buka RoundCut dalam tab baharu.
- Buka DevTools (F12 atau klik kanan → Periksa) dan beralih ke tab Network.
- Klik butang “kosongkan” dalam tab Network untuk bermula semula.
- Gunakan mana-mana alat: muatkan imej, edit, muat turun hasilnya.
- Lihat log Network. Anda akan melihat permintaan untuk HTML, CSS, JS, fon dan (pada penggunaan pertama alat yang lebih berat) modul WebAssembly yang berkaitan. Anda tidak akan melihat sebarang permintaan yang mengandungi bait imej anda.
Lajur “Initiator” memberitahu anda skrip mana yang mencetuskan setiap permintaan, dan lajur “Type” memberitahu anda apa yang dihantar. Tapis mengikut “Fetch/XHR” untuk menumpukan perhatian pada permintaan data; anda akan melihat semuanya kecil, semuanya ke asal statik, dan tiada yang mengandungi fail anda.
Kaedah 2 — Gunakan alat secara luar talian
- Muatkan mana-mana halaman alat RoundCut. Gunakannya sekali untuk memastikan modul WebAssembly yang berkaitan dicache.
- Buka DevTools, pergi ke tab Network, dan tandakan kotak Offline (atau matikan Wi-Fi anda).
- Muatkan semula halaman. Ia masih dimuatkan kerana pelayar telah mencache aset statik.
- Gunakan alat sekali lagi, dari awal hingga akhir. Ia masih berfungsi.
Jika alat berfungsi secara luar talian, secara takrifan ia tidak menghubungi pelayan semasa operasi. Ini adalah bukti terkuat yang mungkin — kerja berlaku pada mesin anda kerana tiada mesin lain yang boleh dicapai.
Apa yang kami lihat
Untuk menjelaskan apa yang dikumpul: apabila anda memuatkan halaman, pembekal analitik kami (Cloudflare Web Analytics) mencatat bahawa sesetengah pelayar memuatkan URL tersebut dari sesetengah negara. Tiada kuki, tiada pengecam berterusan, tiada yang dikaitkan dengan seseorang.
Untuk alat yang memuat turun modul WebAssembly pada penggunaan pertama (kodek jSquash, model ONNX penyingkiran latar belakang), pembekal pengehosan kami melihat bahawa seseorang mengambil modul tersebut — sama seperti melihat mereka mengambil fail CSS. Modul itu sendiri tidak mengandungi sebarang maklumat tentang imej anda.
Inventori data penuh terdapat dalam dasar privasi kami.
Timbunan teknologi
Bagi yang ingin tahu, inilah yang membentuk RoundCut:
- Astro — penjana tapak statik. Setiap halaman dihantar sebagai HTML biasa dengan “islands” JavaScript yang dipertingkat secara progresif hanya di mana alat interaktif berada.
- CSS vanilla dengan sifat tersuai — tanpa Tailwind, tanpa CSS-in-JS. Sistem reka bentuk penuh adalah satu fail
tokens.css. - jSquash — pengikatan WebAssembly kepada MozJPEG, libwebp, libavif dan Oxipng untuk pengekodan imej.
- Cropper.js — lapisan interaksi segi empat tepat tanaman untuk alat pemotongan.
- ONNX Runtime Web — menjalankan model penyingkiran latar belakang dalam pelayar anda melalui WebAssembly.
- Cloudflare Pages — mengehoskan binaan statik, menyajikannya dari edge, dan menyediakan DNS serta perlindungan DDoS.
- Cloudflare Web Analytics — kiraan paparan halaman agregat, tanpa kuki.
Sokongan pelayar
Semua alat berfungsi pada versi semasa dan sebelumnya Chrome, Firefox, Safari
dan Edge — desktop dan mudah alih. Tapak ini menggunakan peningkatan progresif: di mana pelayar
menyokong API yang lebih baru (contohnya showSaveFilePicker,
OffscreenCanvas), kami menggunakannya; di mana tidak, kami menggunakan
padanan yang lebih lama. Tiada halangan “pelayar anda tidak disokong”.
Satu-satunya keperluan yang wajib ialah JavaScript. Dengan JavaScript dilumpuhkan, alat-alat tidak dapat berjalan — tiada sandaran sisi pelayan kerana tiada pelayan yang melakukan kerja pemprosesan imej.
Soalan
Ada yang tidak kami lindungi? E-mel kami di support@araluma.com. Soalan teknikal dialu-alukan.