الإجابة المختصرة
يُشغّل RoundCut جميع أدواته في متصفحك باستخدام واجهتَي برمجة تطبيقات أصيلتَين في المتصفح: Canvas API من HTML5 للعمليات على مستوى البكسل، وWebAssembly للمهام الأثقل — ترميز وفك ترميز صيغ الصور واستنتاج الذكاء الاصطناعي. لا يُرفع أي شيء إلى خادم. لا يُعالَج أي شيء على خوادمنا، لأننا لا نشغّل خوادم تلمس ملفاتك.
يمكنك التحقق من ذلك في نحو 30 ثانية: افتح DevTools في متصفحك، وانتقل إلى تبويب Network، وامسح السجل، ثم استخدم أي أداة. الطلبات الشبكية الوحيدة التي ستراها هي لملفات الموقع الثابتة — HTML وCSS وJavaScript والخطوط ووحدات WebAssembly. صورتك لا تغادر الصفحة قط.
لماذا المعالجة في جانب العميل
معظم أدوات الصور الإلكترونية تعمل بالطريقة المعاكسة: ترفع الملف، يعالجه خادم، تنزّل النتيجة. لهذا النموذج عيوب معروفة — ملفك يقبع على جهاز شخص آخر، وتنتظر رحلتَي الذهاب والإياب مرتين، ويدفع المشغّل مقابل كل ثانية معالجة، وهو ما يفسّر لجوء هذه الخدمات إلى إضافة حسابات ومائيات أو خطط مدفوعة.
المتصفحات قادرة على إنجاز معظم هذا العمل بصورة أصيلة منذ سنوات. يتولّى عنصر <canvas> القص والتدوير وتغيير الحجم وإعادة الترميز؛ أما WebAssembly فيتيح لنا تشغيل مكتبات C/Rust ذاتها التي يستخدمها Squoosh — MozJPEG وlibwebp وlibavif وOxipng — بسرعة تقترب من الأداء الأصيل. حين أطلقنا النسخة المُعاد بناؤها عام 2026، كان المتصفح قد لحق فعليًا بمجموعة أدوات تحرير الصور على سطح المكتب. لم تعد ثمة حاجة لإشراك خادم.
الناتج هو مجموعة تقنية تجمع ثلاث خصائص تتعزز بعضها بعضًا: الخصوصية (ملفك لا يغادر جهازك قط)، والسرعة (لا رفع، لا قائمة انتظار، لا رحلة ذهاب وإياب للخادم)، والتكلفة (نخدم ملفات ثابتة عبر CDN بسنتات في الشهر، بصرف النظر عن عدد المستخدمين).
مسار المعالجة خطوة بخطوة
1. تختار ملفًا
حين تختار صورة — عبر مربع اختيار الملف، أو السحب والإفلات، أو اللصق — يمرّر المتصفح
إلى JavaScript كائنًا من نوع File. يقرأ JavaScript البايتات
باستخدام واجهة FileReader أو Blob.arrayBuffer().
في هذه الخطوة، لا يُرسَل الملف عبر الشبكة في أي لحظة.
2. يفكّ المتصفح ترميز الصورة
يستطيع المتصفحات الحديثة فك ترميز JPG وPNG وWebP وGIF وAVIF، و(في Safari وChromium الحديث) HEIC بصورة أصيلة.
نستخدم createImageBitmap() لتحويل البايتات الخام إلى صورة نقطية يمكن لوحدة معالجة الرسومات التعامل معها، خارج الخيط الرئيسي.
بالنسبة لـ HEIC في المتصفحات التي لا تدعم فك ترميزه أصيلًا، نلجأ إلى مفكك ترميز WebAssembly يعمل محليًا في متصفحك.
3. الأداة تؤدي مهمتها
ما يحدث بعد ذلك يعتمد على الأداة. يضم RoundCut حاليًا ثلاث أدوات:
- Circle Crop — تحويل بكسل Canvas 2D بمسار قطع دائري. تُرسم الصورة النقطية في
<canvas>بالتدوير والتكبير المختارَين، يُطبَّق القطع الدائري، ثم تُقرأ محتويات الدائرة كـImageData. تتولّى Cropper.js التفاعل مع إطار القص. - Compress — تُعيد ترميز JPG أو PNG أو WebP أو AVIF باستخدام وحدات WebAssembly من jSquash (MozJPEG وlibwebp وlibavif وOxipng). هذه هي برامج الترميز ذاتها التي يستخدمها Squoosh. تعمل في
Web Workerلكي تبقى الواجهة مستجيبة أثناء ترميز صورة ضخمة، ومعاينة جانب إلى جانب تتيح لك رؤية المقايضة قبل تأكيد الحفظ. - Remove Background — نموذج ذكاء اصطناعي صغير بصيغة ONNX (بضعة ميغابايت، يُنزَّل مرة واحدة ثم يُخزَّن في الذاكرة المؤقتة) يعمل في متصفحك عبر ONNX Runtime Web، مع WebAssembly كخلفية تنفيذ. يُنزَّل النموذج في أول تشغيل؛ كل تشغيل تالٍ يكون محليًا وفوريًا.
4. تنزّل النتيجة
تُرمَّز الصورة النقطية الناتجة في Blob، تُلفّ في object URL،
وتُعرض على مربع حوار حفظ الملف المعتاد في متصفحك.
حيثما توفّر الدعم، نستخدم File System Access API
لتتمكن من اختيار مجلد الوجهة مباشرةً. يظهر الملف على قرصك؛ لا شيء يمرّ عبر خادم.
كيف تتحقق بنفسك
ادّعاء “لا رفع” قابل للتحقق في دقيقتين. اختر الطريقة التي تفضّلها:
الطريقة الأولى — راقب تبويب Network
- افتح RoundCut في تبويب جديد.
- افتح DevTools (F12 أو انقر بزر الفأرة الأيمن ← فحص) وانتقل إلى تبويب Network.
- انقر زر “مسح” في تبويب Network لتبدأ من الصفر.
- استخدم أي أداة: حمّل صورة، وحرّرها، ونزّل النتيجة.
- انظر إلى سجل Network. ستجد طلبات للـHTML وCSS وJS والخطوط، و(عند أول استخدام لأداة ثقيلة) وحدة WebAssembly المعنية. لن تجد أي طلب يحتوي على بايتات صورتك.
عمود “Initiator” يخبرك أي نص برمجي أطلق كل طلب، وعمود “Type” يخبرك بما أُرسل. صفّ حسب “Fetch/XHR” للتركيز على طلبات البيانات؛ ستجدها جميعها صغيرة، ومتجهة نحو المصدر الثابت، ولا يحتوي أي منها ملفك.
الطريقة الثانية — استخدم الأدوات دون اتصال
- حمّل أي صفحة أداة من RoundCut. استخدمها مرة لتُخزَّن وحدات WebAssembly المعنية في الذاكرة المؤقتة.
- افتح DevTools، اذهب إلى تبويب Network، وضع علامة في خانة Offline (أو أوقف Wi-Fi ببساطة).
- أعد تحميل الصفحة. ستتحمل رغم ذلك، لأن المتصفح خزّن الملفات الثابتة.
- استخدم الأداة مجددًا من البداية حتى النهاية. ستعمل.
إن عملت الأداة دون اتصال، فهذا يعني بالتعريف أنها لم تتصل بأي خادم خلال العملية. هذا أقوى دليل ممكن — العمل جرى على جهازك لأنه لم يكن ثمة جهاز آخر يمكن الوصول إليه.
ما نراه نحن
لنوضح ما يُجمَع: حين تحمّل صفحة، يسجّل مزوّد التحليلات لدينا (Cloudflare Web Analytics) أن متصفحًا ما حمّل تلك الرابط من بلد ما. لا كوكيز، لا معرّفات دائمة، لا شيء مرتبط بشخص بعينه.
بالنسبة للأدوات التي تنزّل وحدة WebAssembly عند الاستخدام الأول (برامج ترميز jSquash، نموذج ONNX لإزالة الخلفية)، يرى مزوّد الاستضافة لدينا أن شخصًا ما أحضر الوحدة — تمامًا كما يرى أحدهم يحضر ملف CSS. الوحدة نفسها لا تحتوي على أي معلومات عن صورتك.
جرد البيانات الكامل موجود في سياسة الخصوصية.
المجموعة التقنية
لأصحاب الفضول، إليكم ما يُبنى عليه RoundCut:
- Astro — مولّد المواقع الثابتة. تُسلَّم كل صفحة كـHTML خالص مع “جُزُر” JavaScript محسّنة تدريجيًا فقط حيث تسكن الأدوات التفاعلية.
- CSS خالص مع خصائص مخصصة — بلا Tailwind، بلا CSS-in-JS. نظام التصميم بالكامل ملف
tokens.cssواحد. - jSquash — ربط WebAssembly لـMozJPEG وlibwebp وlibavif وOxipng لترميز الصور.
- Cropper.js — طبقة تفاعل مستطيل القص لأدوات القص.
- ONNX Runtime Web — يُشغّل نموذج إزالة الخلفية في متصفحك عبر WebAssembly.
- Cloudflare Pages — يستضيف البناء الثابت، ويخدمه من الحافة، ويوفر DNS وحماية DDoS.
- Cloudflare Web Analytics — إحصاء مجمّع لمشاهدات الصفحة بلا كوكيز.
دعم المتصفحات
تعمل جميع الأدوات على الإصدار الحالي والسابق من Chrome وFirefox وSafari وEdge — سطح المكتب والجوال.
يستخدم الموقع التعزيز التدريجي: حيثما دعم المتصفح واجهة برمجية أحدث
(مثل showSaveFilePicker وOffscreenCanvas)، استخدمناها؛ وحيثما لا يدعمها، رجعنا إلى المكافئ القديم.
لا يوجد حاجز “متصفحك غير مدعوم”.
المتطلب الوحيد الصارم هو JavaScript. مع تعطيل JavaScript، لا يمكن للأدوات العمل — ليس ثمة احتياطي على الخادم لأنه لا يوجد خادم يعالج الصور أصلًا.
أسئلة
هل ثمة شيء لم نغطّه؟ راسلنا على support@araluma.com. الأسئلة التقنية مرحّب بها.