RoundCut कैसे काम करता है

इस बारे में तकनीकी विवरण कि टूल्स पूरी तरह आपके ब्राउज़र में कैसे चलते हैं — और आप इसे स्वयं कैसे सत्यापित कर सकते हैं।

संक्षिप्त उत्तर

RoundCut हर टूल को आपके ब्राउज़र में दो ब्राउज़र-नेटिव API का उपयोग करके चलाता है: पिक्सेल-स्तरीय ऑपरेशन के लिए HTML5 Canvas API, और भारी काम के लिए — इमेज फॉर्मेट एन्कोडिंग/डिकोडिंग और AI इन्फेरेंस के लिए — WebAssembly। कुछ भी अपलोड नहीं होता। हमारे सर्वर पर कुछ भी प्रोसेस नहीं होता, क्योंकि हम ऐसे सर्वर नहीं चलाते जो आपकी फ़ाइलें छूते हों।

आप इसे लगभग 30 सेकंड में सत्यापित कर सकते हैं: अपने ब्राउज़र का DevTools खोलें, Network टैब पर जाएं, लॉग साफ़ करें, और कोई भी टूल उपयोग करें। आपको जो एकमात्र नेटवर्क अनुरोध दिखेंगे वे स्टेटिक साइट एसेट के लिए होंगे — HTML, CSS, JavaScript, फ़ॉन्ट और WebAssembly मॉड्यूल। आपकी इमेज पेज कभी नहीं छोड़ती।

क्लाइंट-साइड क्यों

अधिकांश ऑनलाइन इमेज टूल इसके विपरीत काम करते हैं: आप अपलोड करते हैं, सर्वर प्रोसेस करता है, आप परिणाम डाउनलोड करते हैं। इस मॉडल के कुछ जाने-माने नुकसान हैं — आपकी फ़ाइल किसी और की मशीन पर रहती है, आप दो बार राउंड-ट्रिप का इंतज़ार करते हैं, और ऑपरेटर CPU-सेकंड काम के लिए भुगतान करता है, इसीलिए ये सेवाएं अकाउंट, वॉटरमार्क या पेड प्लान जोड़ती हैं।

ब्राउज़र वर्षों से इस काम का अधिकांश हिस्सा नेटिव रूप से कर सकते हैं। <canvas> एलिमेंट क्रॉपिंग, रोटेशन, रिसाइज़िंग और री-एन्कोडिंग संभालता है; WebAssembly हमें वही MozJPEG, libwebp, libavif और Oxipng C/Rust लाइब्रेरी चलाने देता है जो Squoosh इस्तेमाल करता है, लगभग नेटिव स्पीड पर। जब हमने 2026 का रिबिल्ड लॉन्च किया, तब ब्राउज़र डेस्कटॉप इमेज-एडिटिंग टूलकिट के बराबर पहुंच चुका था। सर्वर को शामिल करने की कोई वजह नहीं रही।

परिणाम एक ऐसा स्टैक है जिसमें तीन परस्पर-मज़बूत करने वाली खूबियां हैं: प्राइवेसी (आपकी फ़ाइल आपके डिवाइस से कभी नहीं निकलती), स्पीड (कोई अपलोड नहीं, कोई कतार नहीं, कोई सर्वर राउंड-ट्रिप नहीं), और लागत (हम CDN से स्टेटिक एसेट सर्व करते हैं महीने में कुछ पैसों में, चाहे कितने भी लोग टूल इस्तेमाल करें)।

पाइपलाइन, चरण दर चरण

1. आप एक फ़ाइल चुनते हैं

जब आप एक इमेज चुनते हैं — फ़ाइल पिकर, ड्रैग-एंड-ड्रॉप या पेस्ट के ज़रिए — ब्राउज़र JavaScript को एक File ऑब्जेक्ट सौंपता है। JavaScript FileReader या Blob.arrayBuffer() API का उपयोग करके बाइट्स पढ़ता है। इस चरण में किसी भी समय फ़ाइल नेटवर्क पर नहीं भेजी जाती।

2. ब्राउज़र इमेज डिकोड करता है

आधुनिक ब्राउज़र JPG, PNG, WebP, GIF, AVIF और (Safari तथा हाल के Chromium पर) HEIC को नेटिव रूप से डिकोड कर सकते हैं। हम createImageBitmap() का उपयोग करके मेन थ्रेड के बाहर रॉ बाइट्स को एक ऐसे बिटमैप में बदलते हैं जिसके साथ GPU काम कर सके। ऐसे ब्राउज़र जो HEIC को नेटिव रूप से डिकोड नहीं करते, उनके लिए हम एक WebAssembly डिकोडर का उपयोग करते हैं जो आपके ब्राउज़र में लोकली चलता है।

3. टूल अपना काम करता है

आगे क्या होता है यह टूल पर निर्भर करता है। RoundCut में फिलहाल तीन टूल हैं:

  • Circle Crop — एक सर्कुलर क्लिप पाथ के साथ Canvas 2D पिक्सेल ट्रांसफॉर्म। बिटमैप को चुने गए रोटेशन और ज़ूम पर <canvas> में ड्रा किया जाता है, सर्कल क्लिप लगाया जाता है, और सर्कल के अंदर का हिस्सा ImageData के रूप में वापस पढ़ा जाता है। इंटरैक्टिव क्रॉप फ्रेम Cropper.js संभालता है।
  • CompressjSquash WebAssembly मॉड्यूल (MozJPEG, libwebp, libavif, Oxipng) का उपयोग करके JPG, PNG, WebP या AVIF को री-एन्कोड करता है। ये वही अपस्ट्रीम कोडेक्स हैं जो Squoosh इस्तेमाल करता है। ये Web Worker में चलते हैं ताकि मल्टी-मेगापिक्सेल फोटो एन्कोड होते समय UI रिस्पॉन्सिव बना रहे, और साइड-बाय-साइड प्रीव्यू आपको कन्फर्म करने से पहले ट्रेडऑफ देखने देता है।
  • Remove Background — ONNX फॉर्मेट का एक छोटा AI मॉडल (कुछ MB, एक बार डाउनलोड और कैश) ONNX Runtime Web के ज़रिए आपके ब्राउज़र में चलता है, WebAssembly एग्ज़ीक्यूशन बैकएंड के रूप में। पहली बार में मॉडल डाउनलोड होता है; हर अगली बार लोकल और तुरंत।

4. आप परिणाम डाउनलोड करते हैं

आउटपुट बिटमैप को Blob में एन्कोड किया जाता है, object URL में लपेटा जाता है, और आपके ब्राउज़र के स्टैंडर्ड फ़ाइल-सेव डायलॉग में प्रस्तुत किया जाता है। जहां समर्थित हो, हम File System Access API का उपयोग करते हैं ताकि आप सीधे डेस्टिनेशन फोल्डर चुन सकें। फ़ाइल आपकी डिस्क पर दिखती है; कुछ भी सर्वर से होकर नहीं गुज़रता।

इसे खुद सत्यापित करने के तरीके

“कोई अपलोड नहीं” का दावा दो मिनट में जांचा जा सकता है। जो तरीका पसंद हो वह चुनें:

तरीका 1 — Network टैब देखें

  1. नए टैब में RoundCut खोलें।
  2. DevTools खोलें (F12 या राइट-क्लिक → Inspect) और Network टैब पर जाएं।
  3. Network टैब में “clear” बटन पर क्लिक करके शुरुआत करें।
  4. कोई भी टूल उपयोग करें: इमेज अपलोड करें, एडिट करें, परिणाम डाउनलोड करें।
  5. Network लॉग देखें। आपको HTML, CSS, JS, फ़ॉन्ट और (किसी भारी टूल के पहले उपयोग पर) संबंधित WebAssembly मॉड्यूल के लिए अनुरोध दिखेंगे। आपकी इमेज के बाइट्स वाला कोई अनुरोध नहीं दिखेगा।

“Initiator” कॉलम बताता है कि किस स्क्रिप्ट ने अनुरोध किया, और “Type” कॉलम बताता है क्या भेजा गया। डेटा अनुरोधों पर ध्यान देने के लिए “Fetch/XHR” से फिल्टर करें; आप देखेंगे कि सभी छोटे हैं, सभी स्टेटिक ओरिजिन की तरफ हैं, और कोई भी आपकी फ़ाइल नहीं रखता।

तरीका 2 — टूल्स ऑफलाइन इस्तेमाल करें

  1. कोई भी RoundCut टूल पेज लोड करें। एक बार इस्तेमाल करें ताकि संबंधित WebAssembly मॉड्यूल कैश हो जाएं।
  2. DevTools खोलें, Network टैब पर जाएं, और Offline चेकबॉक्स चेक करें (या बस Wi-Fi बंद करें)।
  3. पेज रीलोड करें। यह फिर भी लोड होता है क्योंकि ब्राउज़र ने स्टेटिक एसेट कैश कर रखे हैं।
  4. टूल फिर से शुरू से अंत तक उपयोग करें। यह अभी भी काम करता है।

अगर टूल ऑफलाइन काम किया, तो परिभाषा के अनुसार उसने ऑपरेशन के दौरान किसी सर्वर से संपर्क नहीं किया। यह सबसे मज़बूत संभव प्रमाण है — काम आपकी मशीन पर हुआ क्योंकि कोई दूसरी मशीन उपलब्ध नहीं थी।

हम क्या देखते हैं

स्पष्टता के लिए कि क्या संग्रहित होता है: जब आप एक पेज लोड करते हैं, हमारा एनालिटिक्स प्रदाता (Cloudflare Web Analytics) रिकॉर्ड करता है कि किसी ब्राउज़र ने किसी देश से वह URL लोड किया। कोई कुकी नहीं, कोई पर्सिस्टेंट आइडेंटिफ़ायर नहीं, कोई व्यक्ति से जुड़ी जानकारी नहीं।

पहले उपयोग पर WebAssembly मॉड्यूल डाउनलोड करने वाले टूल्स (jSquash कोडेक्स, ONNX बैकग्राउंड-रिमूवल मॉडल) के लिए, हमारा होस्टिंग प्रदाता देखता है कि किसी ने वह मॉड्यूल फेच किया — उसी तरह जैसे CSS फ़ाइल फेच होने पर देखता है। मॉड्यूल में आपकी इमेज के बारे में कोई जानकारी नहीं होती।

पूरी डेटा इन्वेंटरी हमारी प्राइवेसी पॉलिसी में है।

टेक्नोलॉजी स्टैक

जिज्ञासु लोगों के लिए, RoundCut जिन पर बना है:

  • Astro — स्टेटिक साइट जनरेटर। हर पेज प्लेन HTML के रूप में आता है, JavaScript “islands” सिर्फ वहां होते हैं जहां इंटरैक्टिव टूल हैं।
  • Vanilla CSS with custom properties — कोई Tailwind नहीं, कोई CSS-in-JS नहीं। पूरा डिज़ाइन सिस्टम एक tokens.css फ़ाइल है।
  • jSquash — इमेज एन्कोडिंग के लिए MozJPEG, libwebp, libavif और Oxipng के WebAssembly बाइंडिंग।
  • Cropper.js — क्रॉपिंग टूल्स के लिए क्रॉप-रेक्टैंगल इंटरैक्शन लेयर।
  • ONNX Runtime Web — WebAssembly के ज़रिए आपके ब्राउज़र में बैकग्राउंड-रिमूवल मॉडल चलाता है।
  • Cloudflare Pages — स्टेटिक बिल्ड होस्ट करता है, एज से सर्व करता है, DNS और DDoS प्रोटेक्शन देता है।
  • Cloudflare Web Analytics — एग्रीगेट, कुकी-फ्री पेज-व्यू काउंट।

ब्राउज़र समर्थन

सभी टूल Chrome, Firefox, Safari और Edge के मौजूदा और पिछले संस्करण पर — डेस्कटॉप और मोबाइल — काम करते हैं। साइट प्रोग्रेसिव एन्हांसमेंट का उपयोग करती है: जहां ब्राउज़र नया API सपोर्ट करता है (जैसे showSaveFilePicker, OffscreenCanvas), हम वह उपयोग करते हैं; जहां नहीं, पुराने समकक्ष पर फॉलबैक करते हैं। “आपका ब्राउज़र समर्थित नहीं है” जैसी कोई दीवार नहीं है।

एकमात्र ज़रूरी चीज़ JavaScript है। JavaScript डिसेबल होने पर टूल नहीं चल सकते — कोई सर्वर-साइड फॉलबैक नहीं है क्योंकि इमेज का काम करने वाला कोई सर्वर मौजूद ही नहीं है।

सवाल

कुछ जो हमने कवर नहीं किया? ईमेल करें support@araluma.com। तकनीकी सवाल स्वागत योग्य हैं।