موقعك مخفي داخل الصورة؟
أداة من KIT تحذف بيانات EXIF من الصورة بالكامل: إحداثيات الموقع، طراز الكاميرا، تاريخ الالتقاط وباقي البيانات المخفية غير الظاهرة. تعمل داخل متصفحك مباشرة، فلا تُرفع الصورة إلى أي خادم أثناء الحذف، وتحصل على نسخة نظيفة جاهزة للمشاركة أو الرفع إلى أي منصة فورًا.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
لماذا تحذف هذه البيانات قبل النشر
أخطر ما في بيانات EXIF أنها غير مرئية إطلاقًا، فقد تنشر صورة منزلك أو سيارتك وهي تحمل إحداثيات موقع دقيقة دون أن تلحظ ذلك على الإطلاق أو تنتبه لوجودها أصلًا. أي شخص يفتح الملف الأصلي — لا الصورة كما تراها على الشاشة فقط — يستطيع استخراج تلك الإحداثيات بسهولة نسبية دون أدوات معقدة. حذف البيانات قبل النشر يغلق هذه الثغرة تمامًا دون أن يغيّر شكل الصورة نفسها بأي درجة أو يؤثر على جودتها المرئية إطلاقًا.
قبل رفع مستند إلى منصة حكومية
منصات مثل أبشر أو الهوية الرقمية تطلب أحيانًا صورًا مرفقة، وبعضها يشترط ملفًا نظيفًا من بيانات إضافية غير ضرورية للمعاملة نفسها. تحذف بيانات EXIF أولًا فتضمن أن الملف يحمل الصورة فقط دون طبقة معلومات جهازك أو موقعك أثناء الالتقاط، وهو ما تطلبه بعض النماذج الرسمية صراحة قبل قبول المرفق نهائيًا واعتماده في المعاملة الحكومية المطلوبة رسميًا من الجهة المعنية بالمعاملة نفسها.
نظيفة داخل المتصفح، دون أي رفع
هذه الأداة مجانية بالكامل وتعمل داخل متصفحك مباشرة: تُحذف البيانات على جهازك أنتَ، ولا تُرسل الصورة إلى أي خادم خارجي لتنظيفها أو معالجتها. هذا مهم تحديدًا هنا؛ فحذف بيانات موقعك لن يفيدك كثيرًا إن كانت الصورة نفسها ستُرفع أولًا إلى خادم غريب لإتمام العملية، فتفقد الغاية الأصلية من الخصوصية التي تبحث عنها من البداية أساسًا دون أن تدري بذلك إطلاقًا.
الصيغ والحدود
تقبل الأداة JPG وPNG وWebP حتى 15 MB و12 ميغابكسل للصورة، وتعيد الملف بالصيغة نفسها بعد حذف البيانات كاملة دون استثناء. الصورة المرئية تبقى مطابقة تمامًا للأصل من حيث الشكل واللون والتفاصيل؛ يُحذف فقط ما هو مخفي داخلها من معلومات تقنية لا تظهر للعين المجردة أصلًا مهما دققت النظر، ولا فرق يمكن ملاحظته بين الملف قبل الحذف وبعده سوى غياب تلك الطبقة المخفية من البيانات.
حالات الاستخدام
بيع عقار دون كشف الموقع
قبل نشر صور شقتها للبيع في مجموعة عقارية، تحذف نورة القحطاني بيانات EXIF من كل صورة، فتضمن ألا تحمل الصور إحداثيات موقع منزلها الحالي.
رفع مرفق إلى منصة حكومية
يحتاج عبدالله المنصوري رفع صورة مستند إلى خدمة إلكترونية تشترط ملفًا خاليًا من بيانات إضافية. يحذف بيانات EXIF أولًا ثم يرفع الصورة دون مشاكل.
مشاركة صورة سيارة للبيع
قبل نشر صور سيارته في إعلان بيع، يحذف خالد العتيبي بيانات الموقع والكاميرا من الصور لضمان عدم كشف عنوان سكنه من الصورة الأصلية.
الأسئلة الشائعة
هل حذف البيانات مجاني فعلًا؟
نعم، بلا حد استخدام وبلا تسجيل. تفتح الأداة، ترفع الصورة، وتنزّل نسخة نظيفة من بيانات EXIF مباشرة.
هل تُرفع صورتي إلى خادم أثناء حذف البيانات؟
لا. تتم العملية بالكامل داخل متصفحك، ولا تغادر الصورة جهازك في أي لحظة من العملية.
هل يتغيّر شكل الصورة بعد حذف البيانات؟
لا، تبقى الصورة المرئية كما هي تمامًا. يُحذف فقط ما هو مخفي: الموقع، الكاميرا، التاريخ، وباقي بيانات EXIF.
هل يمكنني التأكد من حذف الموقع تحديدًا؟
نعم، تعرض الأداة البيانات قبل الحذف حتى تتأكد بنفسك من وجود إحداثيات موقع، ثم تحذفها مع باقي البيانات في خطوة واحدة.
هل يعمل حذف البيانات من الجوال؟
نعم، مباشرة من متصفح الجوال دون تثبيت تطبيق، وبنفس الخصوصية الكاملة داخل الجهاز.
هل توجد نسخة للاستخدام على عدد كبير من الصور تلقائيًا؟
نعم، إلى جانب الاستخدام المجاني في المتصفح، يتوفر الحذف نفسه عبر الـAPI لمعالجة دفعات كبيرة من الصور تلقائيًا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/exif-strip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/exif-strip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exif-strip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exif-strip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exif-strip", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"image": "https://ejemplo.com/imagen.jpg"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_strip",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 15 |
max_megapixels | 12 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |