اعرف ماذا تخفي صورتك
أداة من KIT تعرض بيانات EXIF المخفية داخل الصورة: متى التُقطت وبأي كاميرا أو هاتف، إحداثيات الموقع إن وُجدت، والاتجاه وإعدادات التصوير كاملة. تعمل بالكامل داخل متصفحك دون حد استخدام ودون تسجيل، فلا تُرفع الصورة إلى أي خادم في أي مرحلة من عملية القراءة.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
ماذا تحمل بيانات EXIF
كل صورة تلتقطها كاميرا أو هاتف تحمل معها مجموعة معلومات غير مرئية: التاريخ والوقت الدقيقين، ماركة الجهاز وطرازه، زمن التعريض وفتحة العدسة وحساسية ISO، اتجاه الصورة، وإحداثيات الموقع إن كانت خدمة تحديد المكان مفعّلة أثناء التصوير نفسه. لا تظهر هذه المعلومات في الصورة المرئية أبدًا، لكنها تنتقل معها إلى أي مكان تُرسل إليه دون أن تنتبه لوجودها إطلاقًا حتى تفحصها بنفسك مباشرة.
مجانية بلا حساب، مباشرة في المتصفح
هذه الأداة من الأدوات المجانية في KIT: تعمل كاملة داخل المتصفح، بلا حد استخدام وبلا تسجيل مطلقًا لأي مستخدم. لا تغادر صورتك جهازك أصلًا؛ تتم القراءة على جهازك أنتَ، وتبقى البيانات على حاسوبك أو هاتفك دون أن تصل إلى أي طرف آخر بتاتًا. هكذا تفحص بيانات قد تكون شخصية دون أن تأتمنها خادمًا غريبًا أو تنشئ حسابًا جديدًا لا تحتاجه أصلًا.
لماذا تحتاج هذه البيانات فعليًا
تكشف بيانات EXIF متى التُقطت الصورة فعلًا وبأي جهاز — مفيد لتقدير مصداقية صورة وصلتك، مثل حالة تأمين أو خلاف يحتاج إثباتًا زمنيًا دقيقًا وموثوقًا. كذلك يساعدك الاطلاع عليها قبل النشر في معرفة إن كانت تحمل موقعًا جغرافيًا حساسًا لا تريد كشفه للعموم. مصورون كثيرون يستخدمون إعدادات التصوير المسجّلة لتكرار لقطة نجحت في مرة سابقة بنفس الظروف تقريبًا دون تخمين.
ليست كل صورة تحمل هذه البيانات
شبكات تواصل وتطبيقات مراسلة كثيرة تحذف البيانات تلقائيًا عند الرفع لحماية خصوصية المستخدمين من الكشف غير المقصود. وصورة الشاشة لا تحمل بيانات التقاط أصلًا لأنها لم تمر بكاميرا حقيقية قط. إذا ظهرت الصورة بلا بيانات، فغالبًا مرت بإحدى هذه المنصات أو أُعيد إرسالها أكثر من مرة عبر تطبيقات مختلفة — وهذا بحد ذاته معلومة مفيدة عن مصدر الصورة وتاريخ تنقلها بين الأجهزة.
حالات الاستخدام
التحقق من تاريخ صورة ضرر
تصل خالد العتيبي صورة ضرر عبر واتساب من أجل مطالبة تأمين. يقرأ بيانات EXIF للتحقق من تاريخ الالتقاط الفعلي — إن بقي موجودًا — ومطابقته للحادثة المذكورة.
فحص إحداثيات الموقع قبل النشر
تريد فاطمة الزهراني نشر صورة عقار التُقطت من منزلها للبيع. تتحقق أولًا من وجود إحداثيات موقع داخل الصورة: إن وُجدت، تعرف أنها تحتاج حذفها قبل الكشف عن العنوان.
استرجاع إعدادات لقطة ناجحة
يفحص مصوّر إعدادات التعريض وفتحة العدسة وحساسية ISO لصورة أعجبته، ليستخدم الإعدادات نفسها في موقف مشابه لاحقًا.
الأسئلة الشائعة
هل هذه الأداة مجانية فعلًا؟
نعم. قراءة بيانات EXIF داخل المتصفح مجانية، دون حد استخدام ودون تسجيل. لا تكاليف مخفية ولا اشتراك: تفتح الأداة وترفع الصورة وتقرأ البيانات.
هل تُرفع صورتي إلى أي خادم؟
لا. تتم القراءة بالكامل داخل متصفحك: لا تُرسل الصورة إلى أي خادم، ولا تغادر البيانات جهازك. لهذا يمكنك فحص بيانات شخصية دون قلق.
لماذا لا تظهر بيانات EXIF في صورتي؟
لأن البيانات حُذفت مسبقًا: كثير من شبكات التواصل وتطبيقات المراسلة تحذفها عند الرفع، ولقطة الشاشة لا تحمل بيانات التقاط أصلًا. في هذه الحالة لا يوجد شيء لقراءته فعليًا.
هل أستطيع رؤية موقع الالتقاط على خريطة؟
تعرض الأداة إحداثيات الموقع إن وُجدت داخل الملف، وبهذه الإحداثيات تفتح أنتَ خريطة بنفسك لتحديد المكان. إن لم توجد إحداثيات في الصورة، فلا يوجد موقع لعرضه.
هل تعمل الأداة من الجوال أيضًا؟
نعم، مباشرة من متصفح الجوال دون تثبيت تطبيق: تختار الصورة من المعرض وتظهر البيانات فورًا.
هل توجد طريقة لقراءة بيانات عدد كبير من الصور تلقائيًا؟
نعم، إلى جانب الاستخدام المجاني في المتصفح، تتوفر القراءة نفسها عبر الـAPI لمعالجة أعداد أكبر من الصور تلقائيًا، بسعر لكل طلب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/exif-read \
-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-read", {
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-read",
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-read", 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-read", 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_read",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |