Kısa yanıt
RoundCut her aracı tarayıcınızda iki tarayıcı yerel API’si kullanarak çalıştırır: piksel düzeyindeki işlemler için HTML5 Canvas API ve daha ağır işler için — görüntü format kodlama/kod çözme ve AI çıkarımı için — WebAssembly. Hiçbir şey yüklenmez. Hiçbir şey sunucularımızda işlenmez, çünkü dosyalarınıza dokunan sunucular işletmiyoruz.
Bunu yaklaşık 30 saniyede doğrulayabilirsiniz: tarayıcınızın DevTools’unu açın, Network sekmesine geçin, günlüğü temizleyin ve herhangi bir aracı kullanın. Göreceğiniz tek ağ istekleri site için statik varlıklara ait olacaktır — HTML, CSS, JavaScript, yazı tipleri ve WebAssembly modülleri. Görüntünüz sayfayı hiçbir zaman terk etmez.
Neden istemci tarafı
Çoğu çevrimiçi görüntü aracı bunun tam tersine çalışır: siz yükleyin, bir sunucu işlesin, siz sonucu indirin. Bu modelin birkaç iyi bilinen dezavantajı vardır — dosyanız başka birinin makinesinde yaşar, gidiş dönüş sürecini iki kez beklersiniz ve operatör çalışma başına CPU-saniye öder; bu yüzden bu hizmetler genellikle hesaplar, filigranlar veya ücretli planlar ekler.
Tarayıcılar bu işin büyük bölümünü yıllardır yerel olarak yapabilmektedir. <canvas> öğesi
kırpmayı, döndürmeyi, yeniden boyutlandırmayı ve yeniden kodlamayı yönetir; WebAssembly ise Squoosh’un kullandığı
aynı C/Rust kitaplıkları olan MozJPEG, libwebp, libavif ve Oxipng’i neredeyse yerel hızda çalıştırmamıza
olanak tanır. 2026 yeniden yapımını piyasaya sürdüğümüzde tarayıcı, masaüstü görüntü düzenleme araç setini
fiilen yakalamıştı. Bir sunucu dahil etmek için artık bir neden kalmamıştı.
Sonuç, birbirini güçlendiren üç özelliğe sahip bir yığındır: gizlilik (dosyanız cihazınızı hiçbir zaman terk etmez), hız (yükleme yok, kuyruk yok, sunucuya gidiş dönüş yok) ve maliyet (kaç kişi aracı kullanırsa kullansın statik varlıkları bir CDN’den ayda birkaç kuruşa sunuyoruz).
Ardışık düzen, adım adım
1. Bir dosya seçiyorsunuz
Dosya seçici, sürükle-bırak veya yapıştırma yoluyla bir görüntü seçtiğinizde tarayıcı
JavaScript’e bir File nesnesi iletir. JavaScript baytları
FileReader veya Blob.arrayBuffer() API’si aracılığıyla okur.
Bu adımın hiçbir noktasında dosya ağ üzerinden gönderilmez.
2. Tarayıcı görüntüyü çözer
Modern tarayıcılar JPG, PNG, WebP, GIF, AVIF ve (Safari ile güncel Chromium’da) HEIC’yi
yerel olarak çözebilir. Ham baytları ana iş parçacığı dışında GPU’nun çalışabileceği bir bit eşlemine
dönüştürmek için createImageBitmap() kullanırız. HEIC’yi yerel olarak çözemeyen tarayıcılarda
tarayıcınızda yerel olarak çalışan bir WebAssembly kod çözücüye geri düşeriz.
3. Araç işini yapar
Bundan sonra ne olacağı araca bağlıdır. RoundCut şu anda üç araç sunmaktadır:
- Circle Crop — dairesel bir kırpma yoluyla Canvas 2D piksel dönüşümü. Bit eşlem, seçilen döndürme ve yakınlaştırmayla bir
<canvas>üzerine çizilir, dairesel kırpma uygulanır ve dairenin içiImageDataolarak geri okunur. Etkileşimli kırpma çerçevesini Cropper.js yönetir. - Compress — JPG, PNG, WebP veya AVIF’i jSquash WebAssembly modülleri (MozJPEG, libwebp, libavif, Oxipng) kullanarak yeniden kodlar. Bunlar, Squoosh’un kullandığı üst akış codec’lerin aynısıdır. Birden fazla megapikselli bir fotoğraf kodlanırken arayüzün duyarlı kalması için
Web Workeriçinde çalışırlar; yan yana önizleme, onaylamadan önce dengeyi görmenizi sağlar. - Remove Background — Küçük bir ONNX formatlı AI modeli (birkaç MB, bir kez indirilip önbelleklenir) WebAssembly’yi yürütme arka ucu olarak kullanarak ONNX Runtime Web aracılığıyla tarayıcınızda çalışır. İlk çalıştırma modeli indirir; sonraki her çalıştırma yerel ve anında gerçekleşir.
4. Sonucu indiriyorsunuz
Çıktı bit eşlemi bir Blob’a kodlanır, bir object URL’ye sarılır
ve tarayıcınızın standart dosya kaydetme iletişim kutusuna sunulur.
Desteklendiği durumlarda, hedef klasörü doğrudan seçebilmeniz için
File System Access API’yi kullanırız.
Dosya diskinizde görünür; hiçbir şey bir sunucudan geçmez.
Kendiniz nasıl doğrularsınız
“Yükleme yok” iddiası iki dakikada doğrulanabilir. Tercih ettiğiniz yöntemi seçin:
Yöntem 1 — Network sekmesini izleyin
- Yeni bir sekmede RoundCut’ı açın.
- DevTools’u açın (F12 veya sağ tıklayın → İncele) ve Network sekmesine geçin.
- Sıfırdan başlamak için Network sekmesindeki “temizle” düğmesine tıklayın.
- Herhangi bir aracı kullanın: bir görüntü yükleyin, düzenleyin, sonucu indirin.
- Network günlüğüne bakın. HTML, CSS, JS, yazı tipleri ve (daha ağır bir aracın ilk kullanımında) ilgili WebAssembly modülüne yönelik istekler göreceksiniz. Görüntünüzün baytlarını içeren herhangi bir istek görmeyeceksiniz.
“Initiator” sütunu her isteği hangi betiğin tetiklediğini, “Type” sütunu ise ne gönderildiğini söyler. Veri isteklerine odaklanmak için “Fetch/XHR” ile filtreleyin; hepsinin küçük, hepsinin statik kaynağa yönelik olduğunu ve hiçbirinin dosyanızı içermediğini göreceksiniz.
Yöntem 2 — Araçları çevrimdışı kullanın
- Herhangi bir RoundCut araç sayfasını yükleyin. İlgili WebAssembly modüllerinin önbelleklenmesini sağlamak için bir kez kullanın.
- DevTools’u açın, Network sekmesine gidin ve Çevrimdışı onay kutusunu işaretleyin (veya Wi-Fi’yı kapatın).
- Sayfayı yenileyin. Tarayıcı statik varlıkları önbelleğe aldığı için yine yüklenir.
- Aracı baştan sona yeniden kullanın. Hâlâ çalışır.
Araç çevrimdışı çalıştıysa, tanım gereği işlem sırasında bir sunucuyla iletişim kurmadı. Bu mümkün olan en güçlü kanıttır — iş makinenizde gerçekleşti çünkü başka erişilebilir bir makine yoktu.
Ne gördüğümüz
Neyin toplandığını netleştirmek için: bir sayfayı yüklediğinizde analitik sağlayıcımız (Cloudflare Web Analytics) bir tarayıcının o URL’yi bir ülkeden yüklediğini kaydeder. Çerez yok, kalıcı tanımlayıcı yok, bir kişiye bağlı hiçbir şey yok.
İlk kullanımda WebAssembly modülü indiren araçlar için (jSquash codec’leri, ONNX arka plan kaldırma modeli) barındırma sağlayıcımız birinin modülü aldığını görür — tıpkı CSS dosyasını aldığını görmesi gibi. Modülün kendisi görüntünüz hakkında herhangi bir bilgi içermez.
Tam veri envanteri gizlilik politikamızda yer almaktadır.
Teknoloji yığını
Merak edenler için RoundCut’ın neyin üzerine inşa edildiği:
- Astro — statik site oluşturucu. Her sayfa, yalnızca etkileşimli araçların bulunduğu yerlerde aşamalı olarak iyileştirilmiş JavaScript “islands” ile düz HTML olarak sunulur.
- Vanilla CSS ve özel özellikler — Tailwind yok, CSS-in-JS yok. Tasarım sisteminin tamamı tek bir
tokens.cssdosyasıdır. - jSquash — görüntü kodlaması için MozJPEG, libwebp, libavif ve Oxipng’e WebAssembly bağlamaları.
- Cropper.js — kırpma araçları için kırpma dikdörtgeni etkileşim katmanı.
- ONNX Runtime Web — arka plan kaldırma modelini tarayıcınızda WebAssembly aracılığıyla çalıştırır.
- Cloudflare Pages — statik derlemeyi barındırır, uçtan sunar ve DNS ile DDoS koruması sağlar.
- Cloudflare Web Analytics — toplu, çerez içermeyen sayfa görüntüleme sayımı.
Tarayıcı desteği
Tüm araçlar Chrome, Firefox, Safari ve Edge’in geçerli ve önceki sürümlerinde — masaüstü ve
mobilde — çalışır. Site aşamalı geliştirme kullanır: tarayıcının daha yeni bir API’yi
desteklediği yerde (ör. showSaveFilePicker, OffscreenCanvas) bunu kullanırız;
desteklemediği yerde eski muadile geri döneriz. “Tarayıcınız desteklenmiyor” gibi bir engel yoktur.
Tek zorunlu gereksinim JavaScript’tir. JavaScript devre dışıyken araçlar çalışamaz — görüntü işleme yapan bir sunucu olmadığından sunucu tarafı geri dönüş de yoktur.
Sorular
Kapsamadığımız bir şey mi var? Bize e-posta gönderin: support@araluma.com. Teknik sorular memnuniyetle karşılanır.