يُفتح هذا بمجرّد أن تختار ملفاً في الأعلى.جاهزة — اقطع الاتصال بالإنترنت وستظل تعمل.غير متاحة في هذا المتصفح (كل شيء آخر يظل يعمل).تحتاج إلى https:// أو localhost للتخزين المؤقت دون اتصال.التخزين المؤقت غير متاح هنا، لكن لا شيء يُرفع في الحالتين.ملفاتك لم تذهب إلى أي مكان. {total} ملفاً حُمِّلت، كلها ملفات هذه الصفحة نفسها. {platform}اتصل شيءٌ بـ {hosts}، وهو ما لا تفعله هذه الأداة أبداً. عُدَّ ذلك جديراً بالتحقيق. {platform}نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من مضيفٍ {hosts}؛ ولم يُعطَ واحد منها ملفاً ولا بايتاً منه.نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من {hosts} مضيفاً؛ ولم يُعطَ واحد منها ملفاً ولا بايتاً منه.حدث خطأ ما: {detail}. أعد تحميل الصفحة لتبدأ من جديد.جارٍ قراءة {count} ملف…جارٍ قراءة {count} ملف…جرّب مثالاًجارٍ إنشاء مثال…تعذّر على هذا المتصفّح إنشاء المثال. اختر ملفاً بدلاً من ذلك.
يجري فكُّ الترميز داخل متصفحك أنت، على جهازك أنت. وHEIC هي صيغة الصور الوحيدة التي لا يفتحها المتصفح من تلقاء نفسه، فتحمل هذه الصفحة فاكَّ الترميز معها — نحو 1.4 MB، تُخدَم من هذا الموقع، وتُخبَّأ بعد أول زيارة. وهذا وحده هو السبب في أن كل محوِّل HEIC آخر يطلب منك الرفع: وضعوا المرمِّز على خادم، فوجب أن تذهب صورك إليه. أما هذا فوضع المرمِّز هنا بدلاً من ذلك. ولا توجد في هذه الصفحة وظيفة شبكية على الإطلاق، ولا خادم في طرفها الآخر تُرسَل إليه صورة.
✗ بلا رفع
✗ بلا حساب
✗ بلا حدّ للحجم
✓ يعمل دون اتصال
✓ مفتوح المصدر
فحص حي:جارٍ الفحص…
دون اتصال:جارٍ الفحص…
لا داعي لأن تصدّقنا: افتح أدوات المطوّر، وراقب تبويب «الشبكة»، ثم حوِّل صورة. سترى ملفات هذه الصفحة نفسها تُحمَّل، وفاكَّ الترميز بينها، ولا طلب واحد يحمل صورةً ولا مصغَّرة ولا اسم ملف ولا بايتاً واحداً مما اخترته. أو حمِّل الصفحة مرة، ثم اقطع الاتصال بالإنترنت، وحوِّل مجلداً منها رغم ذلك.
كيف يمكن التحقق من وعد الخصوصية
صورك لا سبيل لها إلى الخروج. تُسمّي Content-Security-Policy كل عنوان يجوز لهذه الصفحة الاتصال به، وليس واحد منها لنا. فلا يوجد هنا طرفٌ تُجمَع عنده ملفاتك، ولا في الشيفرة ما يرسلها إليه لو وُجد.
فاكُّ الترميز جاء من هنا، ولا يذهب إلى أي مكان. إن HEIC هي إطار HEVC داخل صيغة حاوية، ولا يفكّ ترميزها متصفحٌ غير Safari، فتشحن هذه الصفحة libheif مُصرَّفاً إلى WebAssembly — نحو 1.4 MB، مودَعاً في هذا المستودع، يُخدَم من هذا الأصل، وتخبّئه عاملُ الخدمة كما تخبّئ كل ملف آخر هنا. ولا يُجلَب من شبكة توصيل محتوى، لأن ذلك يضع طرفاً ثالثاً في طريق كل زيارة ويوقف عمل الأداة دون اتصال. والثنائي داخل النص البرمجي لا إلى جانبه، وذلك بالضبط كي لا يلزم أي جلب لتشغيله.
لا شيء هنا يجلب شيئاً. لا يوجد fetch ولا XMLHttpRequest ولا sendBeacon في أي ملف كُتِب لهذه الأداة. أما المحرّك المودَع، فهو ككل بناء Emscripten يحوي مسارات التحميل التي كانت ستجلب ملف .wasm من عنوان؛ وهي مسارات لا تُسلَك، لأن الثنائي في اليد أصلاً — ولو سُلِكت لكان connect-src يُسمّي نقاط قياس Google لا غير، فيرفضها المتصفح. فالسياسة هي البرهان، لا الوعد.
البيانات الوصفية تُقرأ هنا وتُعرَض عليك. تقول القائمة على الصفحة ما تحمله كل صورة — التاريخ، والكاميرا، وهل فيها إحداثيات GPS — لأن ذلك شيء قد تحبّ معرفته قبل أن تناول أحداً ملف JPEG. ويقرؤه src/boxes.js من الملف في هذا المتصفح، ويُعرَض على هذه الصفحة، ويُكتَب في ملف JPEG أو يُترَك، كما تختار أنت تماماً. ولا يوجد في هذا المستودع أي حدث تحليلات مخصّص يحمل اسم ملف أو تاريخاً أو إحداثياً أو عدداً.
ما تُحمّله Google، وما لا يُعطى لها. نصوص الإعلانات والقياس تأتي من Google، وزر التبرّع من Buy Me a Coffee. ولا يُعطى أيٌّ منها شيئاً عن صورك. وكل سطر يقرأ ملفاً أو يفكّ ترميزه أو يكتبه يُخدَم من هذا الأصل نفسه ومُدرَج في المستودع.
يعمل دون اتصال. حمِّل الصفحة مرة واقطع الاتصال بالشبكة، وتبقى الأداة كما هي — فقد خُبِّئ فاكُّ الترميز معها. وهذا أبسط برهان على الإطلاق، وهو هنا أقوى منه في أي موضع آخر من هذا الموقع: فمحوِّلٌ يرسل صورك بعيداً ليفكّ ترميزها ما كان له أن يستطيع ذلك أبداً.
تحقّق بنفسك. لا شيء مما سبق عليك تصديقه دون تحقق. تُولَّد هذه الصفحة من القوالب والإعدادات في المستودع بواسطة سكربت بناء يمكنك قراءته وتشغيله بنفسك، والنتيجة موجودة في فرع dist — فقارِن إذن بين ما يُقدَّم فعلا وما ينتجه بناء المصادر:
الملفات الجديرة بالقراءة أولا هي config/site.toml من أجل سياسة أمان المحتوى (Content-Security-Policy)، وsrc/heif.js لكيفية تحميل فاكِّ الترميز وما يُسمح له به، وsrc/boxes.js لتحليل الحاوية الذي يجد البيانات الوصفية للصورة، وsrc/exif.js لما يحدث لتلك البيانات في طريقها إلى JPEG. أما المحرّك نفسه فهو vendor/libheif.js، دون تعديل، ورخصته إلى جانبه.
إذا حذّرك برنامج الحماية في عملك من رفع ملف. إنه يراقب لحظة اختيار ملف في المتصفّح، ولا يمكنه أن يعرف إن كانت الصفحة تنوي إرساله — فيحذّر عند الاختيار. لا شيء يُرسَل من هنا: افتح أدوات المطوّر في متصفّحك، وانتقل إلى Network، ثم اختر ملفاً. لا يوجد أي طلب يحمله، ولا أي طلب أصلاً عدا المعاينة المحلية للصفحة. وهو الفحص نفسه الذي يستطيع أي شخص في قسم تقنية المعلومات لديك إجراؤه في نصف دقيقة.
1 اختر صور HEIC
من الهاتف مباشرة، أو من نسخة احتياطية، أو منسوخة من بطاقة ذاكرة. يُقرأ الملف هنا، على هذا الجهاز، وتُفكّ ترميز الصورة هنا كذلك — فليس في هذه الصفحة خطوة رفع ولا خلفها خادم.
2 قل ماذا تريد أن يعود إليك
أبقِ على التاريخ والكاميرا والإعدادات تُنقَل كما كتبها الهاتف تماماً، فتظل الصورة المحوَّلة تُرتَّب بيوم التقاطها لا بيوم تحويلها. ويشمل ذلك إحداثيات GPS حين تحملها الصورة — والقائمة أعلاه تقول أي صورك تحملها. أطفئ هذا فيخرج ملف JPEG وليس فيه إلا الصورة.
وفي الحالين لا يُقرأ شيء هنا على أحد: فالاختيار عمّا يدخل في الملف الذي يعود إليك، لا عمّا تفعله هذه الصفحة به. وإن أردت أن تتصفّح الوسوم بالتفصيل، أو أن تزيلها من صور هي JPEG أصلاً، فـ عارض EXIF ومُزيله هو الأداة لذلك.
3 حوِّل
بعد التحويل
{name}: {why}هذا AVIF لا HEIC. وكل متصفح حديث يفتحه أصلاً، فليس ثمة ما يُفعل به هنا.هذا JPEG أصلاً.هذا PNG، وهو يُفتح في كل مكان أصلاً.هذا ليس HEIC. أياً كان {name}، فأول بايتاته ليست حاوية HEIF، والاسم ليس دليلاً في الاتجاهين.صورة واحدة، {size} إجمالاً{n} صورة، {size} إجمالاًHEIC ({brand}) · {size}أزل {name} من القائمةلا تفاصيل تصوير في هذا الملفإحداثيات GPSتفاصيل تصوير، لكن لا شيء يدل على صاحبها{a} · {b}{a} {b}JPEG هو ما كان الهاتف سيكتبه لو طُلب منه ذلك. يفتحه كل برنامج وكل موقع وكل طابعة.PNG لا يرمي شيئاً، والصورة المحفوظة به تكون عادةً خمسة إلى عشرة أضعاف حجم JPEG. وهو الخيار الصحيح للقطة شاشة أو رسم تخطيطي، والخاطئ لصور عطلة.WebP أصغر من JPEG عند الجودة نفسها، ويفتحه كل متصفح صدر منذ 2020 — لكن ليس كل برنامج سطح مكتب، وهذا بالضبط ما ينبغي التحقق منه قبل إرسال واحد إلى أحد.التاريخ والكاميرا والموقع تُترك.التاريخ والكاميرا والموقع تُنسخ، مع تصحيح وسم الدوران لأن الصورة نفسها قد أُديرت إلى وضعها الصحيح.تفاصيل التصوير لا تستطيع المجيء: JPEG وحده له موضع قياسي لها يستطيع الكانفاس كتابته، فيخرج ملف {format} بالصورة وحدها.ملفالصيغة الجديدةWebP — غير مدعوم في هذا المتصفحفي انتظار فاكّ الترميزقراءةفك ترميزكتابة الصورة {index} من {total}كتابة ملف {format}{index} من {total}: {name} — {note}لم يُحمَّل فاكّ الترميز. وهو يُقدَّم من هذا الموقع، فإما أن الطلب مُعترَض وإما أن الزيارة الأولى تعثّرت — وإعادة التحميل تصلح ذلك عادةً.حُمّل فاكّ الترميز لكنه لم يبدأ.لم يستطع فاكّ الترميز قراءة هذا الملف ({detail}).ليس في هذا الملف صورة استطاع فاكّ الترميز أن يجدها.الصورة في هذا الملف بلا مقاس يستطيع فاكّ الترميز استعماله.قرأ فاكّ الترميز الملف لكنه لم يستطع رسمه.هذا المتصفح لم يكتب ملف {format}.ملف HEIC واحد{n} ملفات HEICصورة {format} واحدة{n} صور {format}{files} → {pictures}. {before} → {after}، {change}.الصورة بعد التحويل: {name}{before} → {after} · {change}نزّل{format} بمقاس {size}الجودة {n}الصورة {n} من {total} في الملفتفاصيل التصوير محفوظةتفاصيل التصوير محفوظة، وإحداثيات GPS معهالم تُكتب تفاصيل تصويركانت تفاصيل التصوير أكبر من أن تسعها فقرة JPEG فتُركت{list}.الحجم نفسه تقريباًأصغر بنسبة {n}%أكبر بنسبة {n}%{n} بايت{n} كيلوبايت{n} ميغابايتيُحمَّل فاكّ ترميز HEIC من هذا الموقع أول مرة تستعمله: نحو 1.4 ميغابايت، مرة واحدة، ثم يُخزَّن.تحميل فاكّ ترميز HEIC من هذا الموقع: نحو 1.4 ميغابايت، مرة واحدة.فاكّ الترميز جاهز — قُدِّم من هذا الموقع وخُزِّن، فهو هنا في المرة القادمة وحتى مع فصل الشبكة.لم يستطع فاكّ الترميز أن يبدأ: {why}أُوقف بعد {done} من {total}. ما اكتمل موجود بالأسفل.أُوقف قبل أن يكتمل الأول.جاهزة — وفاكُّ الترميز مخبَّأ كذلك، فهذا يعمل والشبكة مفصولة.صورك لم تذهب إلى أي مكان. {total} ملفاً حُمِّلت، كلها ملفات هذه الصفحة نفسها - ومن بينها المفكِّك. {platform}اتصل شيءٌ بـ {hosts}، وهو ما لا تفعله هذه الأداة أبداً. عُدَّ ذلك جديراً بالتحقيق. {platform}نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من مضيفٍ {hosts}؛ ولم يُعطَ واحد منها صورةً ولا بايتاً منها.نصوصُ الإعلانات والقياس وزرّ التبرّع الخاصة بالصفحة حُمِّلت من {hosts} مضيفاً؛ ولم يُعطَ واحد منها صورةً ولا بايتاً منها.
هل أنجزت المهمة؟
ما الذي حدث خطأ؟
شكرا — هذا يساعد.
يُرسَل الجواب فقط، وفقط عند الضغط على زر. لا يُرسَل ملفك أبدا، ولا اسمه، ولا أي شيء عنه.
# HEIC إلى JPG — حوِّل صور الآيفون
الصور التي يلتقطها الآيفون، بصيغة يفتحها كل شيء.
> حوِّل صور HEIC من الآيفون إلى JPG داخل متصفحك. يعمل فاكُّ الترميز على جهازك أنت: لا يُرفع شيء، ولا حساب، ويعمل دون اتصال، وللتاريخ وتفاصيل الكاميرا أن تأتي معها.
هذه الصفحة أداة تفاعلية تعمل بالكامل داخل متصفحك، على العنوان https://abox.tools/ar/تحويل-heic-إلى-jpg/ — ولا يُرفَع أي شيء تعطيه إياها. وفيما يلي كل ما تقوله الصفحة عن الأداة بالكلمات؛ لاستخدامها، افتح العنوان.
## صورك لا تُرفع **أبدا**. لا يوجد خادم.
يجري فكُّ الترميز داخل متصفحك أنت، على جهازك أنت. وHEIC هي صيغة الصور الوحيدة التي لا يفتحها المتصفح من تلقاء نفسه، فتحمل هذه الصفحة فاكَّ الترميز معها — نحو 1.4 MB، تُخدَم من هذا الموقع، وتُخبَّأ بعد أول زيارة. وهذا وحده هو السبب في أن كل محوِّل HEIC آخر يطلب منك الرفع: وضعوا المرمِّز على خادم، فوجب أن تذهب صورك إليه. أما هذا فوضع المرمِّز هنا بدلاً من ذلك. ولا توجد في هذه الصفحة وظيفة شبكية على الإطلاق، ولا خادم في طرفها الآخر تُرسَل إليه صورة.
- ✗ بلا رفع
- ✗ بلا حساب
- ✗ بلا حدّ للحجم
- ✓ يعمل دون اتصال
- ✓ مفتوح المصدر
## كيف تحوِّل صور HEIC إلى JPG
1. **اختر صور HEIC.** أفلِتها على المُنتقي أو اخترها يدوياً، من نسخة احتياطية لهاتف أو من مجلد على سطح المكتب مباشرة. يقرؤها المتصفح من قرصك، ولا يُرسَل شيء إلى أي مكان أثناء ذلك. وتقول القائمة ما كلُّ واحدة منها وما بداخلها.
2. **انظر ماذا تحمل الصور.** يُسمّي كل صف تاريخ الالتقاط، والكاميرا، و— بالأخضر، لأنه الجزء الجدير بالانتباه — هل يحمل الملف إحداثيات GPS. ويُقرأ ذلك من الحاوية دون فكّ ترميز الصورة، فلا يكلّف شيئاً ويظهر في الحال.
3. **اختر صيغة، واحسم أمر التفاصيل.** JPEG ما لم يكن لديك سبب: فهي الصيغة التي تُفتَح في كل مكان، وذلك هو مغزى التحويل كله. ومِزلاج الجودة عند 92، وهو الإعداد الذي يصعب عنده تمييز الصورة عن أصلها. أما مربع الاختيار فيقرّر هل يأتي معها التاريخ والكاميرا والموقع.
4. **اضغط «حوِّل»، ثم نزِّل.** يصل فاكُّ الترميز عند أول تحويل — نحو 1.4 MB، مرة واحدة — ثم تُفكّ ترميز كل صورة بعدها وتُكتَب على جهازك أنت. ملف واحد يعطيك زر تنزيل؛ وعدة ملفات تعطيك ملف zip كذلك.
## النسخة الأطول
[الصورةُ التي حفظها هاتفُك، والصيغةُ التي لا يفتحها شيء](https://abox.tools/ar/أدلة/تحويل-heic-إلى-jpg/): هواتفُ iPhone تحفظ الصور بصيغة HEIC، ونصفُ الإنترنت لا يستطيع فتح واحدة. ما هذه الصيغة، ولماذا لا يفكّ ترميزها إلا Safari، وماذا يكلّف التحويلُ الصورةَ، وكيف تفعله دون أن ترفع الصور إلى أحد.
## أيضا في الصندوق
- [صانع الصور الشخصية](https://abox.tools/ar/صورة-شخصية-بيومترية/): اختر البلد. فيطبّق قاعدة ذلك البلد، بالضبط.
- [تكديس الصور](https://abox.tools/ar/تكديس-الصور/): عشرون إطاراً في واحد، بلا عشرين رفعاً وبلا محوِّل RAW.
- [طمس الصور](https://abox.tools/ar/طمس-الصورة/): ما تغطّيه يُحذَف من الملف، لا يُغطَّى داخله.
- [عارض EXIF ومُزيله](https://abox.tools/ar/إزالة-بيانات-exif/): انظر ماذا تقول صورتك عنك. ثم أخرِجه منها.
## أسئلة
### هل تُرفع صورتي إلى أي مكان؟
لا. يقرأ متصفحك أنت الملف ويفكّ ترميزه ويكتبه على جهازك أنت. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — فهي لا تجلب شيئاً ولا ترسل شيئاً — و`Content-Security-Policy` الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به، وليس واحد منها لنا. والشيء الوحيد الذي يُحمَّل فعلاً هو فاكُّ الترميز نفسه، وهو يأتي من هذا الموقع، مرة واحدة، قبل أن تدخل صورتك في الأمر أصلاً.
### لماذا تُنزِّل هذه الصفحة 1.4 MB في المرة الأولى؟
لأن HEIC هي صيغة الصور الوحيدة التي لا يفتحها المتصفح. فهي إطار HEVC في حاوية، ولا يملك فاكَّ ترميز لها إلا Safari على عتاد Apple؛ أما Chrome وFirefox وEdge فترفض الملف ببساطة. فمحوِّل HEIC يحتاج إلى فاكِّ ترميز من مكان ما، والأمكنة اثنان لا ثالث لهما: خادم، أو الصفحة. وقد اختار كل محوِّل آخر الخادمَ، وهو بالضبط سبب حاجتهم جميعاً إلى رفع صورك. أما هذا فيحمل `libheif` مُصرَّفاً إلى WebAssembly بدلاً من ذلك. يُخدَم من هذا الموقع، ويُخبَّأ بعد أول زيارة، وهو ثمن ألا تذهب صورك إلى أي مكان، كل الثمن.
### هل يحتفظ ملف JPEG بالتاريخ والكاميرا والموقع؟
إن أردت له ذلك، وهو مربع اختيار على الصفحة. فإن تُرِك مفعَّلاً نُسِخت كتلة EXIF من ملف HEIC وكُتِبت في ملف JPEG كما كتبها الهاتف تماماً، فتظل الصورة المحوَّلة تُرتَّب بيوم التقاطها لا بيوم تحويلها — وهي الشكوى المعتادة من محوِّلات HEIC. ويُغيَّر وسم واحد لا غير: الاتجاه، إذ يُضبَط على «قائم»، لأن الدوران طُبِّق على البكسلات أصلاً، وعارضٌ يطبّقه ثانيةً كان سيقلب كل صورة طولية على جنبها. أطفئ مربع الاختيار فيخرج ملف JPEG بالصورة لا غير.
### هل يزيل إحداثيات GPS؟
يخبرك بوجودها، ثم يفعل ما تطلبه أنت. فصفُّ كل صورة يقول هل يحمل الملف إحداثيات قبل أن تحوِّل شيئاً، وهو أكثر مما يفعله الهاتف. وإلغاء «أبقِ على التاريخ والكاميرا والإعدادات» يتركها خارج ملف JPEG مع كل ما عداها؛ وتركُه مفعَّلاً ينقلها معها. وإن كان مرادك أن تتصفّح الوسوم بالتفصيل، أو أن تزيلها من صور هي JPEG أصلاً، فـ [عارض EXIF ومُزيله](https://abox.tools/ar/إزالة-بيانات-exif/) هو الأداة لذلك، وهو يفعله دون إعادة ضغط الصورة.
### هل يُعاد ضغط الصورة؟
نعم، ولا بدّ من ذلك: فـ HEIC وJPEG مرمِّزان مختلفان، فلا سبيل إلى الانتقال من أحدهما إلى الآخر دون فكّ ترميز الصورة وإعادة ترميزها. وما تتحكّم فيه أنت هو كم يكلّف ذلك. فمِزلاج الجودة افتراضه 92، ويصعب عنده جداً تمييز الصورة عن أصلها، وPNG موجودة في القائمة للحالة التي لا تريد فيها خسارة البتة ولا يضيرك أن يصير الملف خمسة أو عشرة أضعاف حجمه.
### ماذا لو كان اسم الملف .jpg وهو في الحقيقة HEIC؟
يعمل رغم ذلك. فكل ملف يُفلَت هنا يُعرَّف ببايتاته الأولى لا باسمه، لأن الاسم هو ما قرّره آخرُ تطبيق لمس الملف — وملفُّ HEIC وصل باسم «.jpg» من أشيع ما يجعل الناس يبحثون عن أداة كهذه. أما الملف الذي هو JPEG أو PNG حقاً فيُرفَض برسالة تقول ذلك، بدل أن يُحوَّل إلى نسخة من نفسه.
### هل يستطيع تحويل صورة حيّة أو لقطة متتابعة؟
الصور الساكنة التي فيها، نعم. فملف HEIC قد يحمل أكثر من صورة، وكل صورة يحملها تُحوَّل وتُسمّى باسم الأصل ورقمٌ في آخرها. أما النصف المرئي المتحرّك من الصورة الحيّة فملف منفصل يحفظه الهاتف بجانب ملف HEIC، فليس هنا كي يُحوَّل. وخرائط العمق والمصغَّرات موجودة في الحاوية لكنها ليست صوراً طلبها أحد، فتُترَك وشأنها.
### لماذا لا يقبل ملف AVIF؟
لأنه لا شيء يُفعَل به. فـ AVIF هي الحاوية نفسها التي لـ HEIC وفيها AV1 بدل HEVC، وكل متصفح حالي يفكّ ترميزها أصلاً — فالمحوِّل سيكون شاحناً ميغابايتاً من المحرّك لحلّ مشكلة ليست عندك. وإن احتجت إلى AVIF بصيغة JPEG، فـ [ضاغط الصور](https://abox.tools/ar/ضغط-الصور/) و [أداة تغيير حجم الصور](https://abox.tools/ar/تغيير-حجم-الصورة/) كلاهما يقرأ AVIF ويكتب JPEG بفاكِّ الترميز الذي في متصفحك أصلاً.
### هل هو مجاني، وهل أحتاج إلى حساب؟
هو مجاني، ولا حساب ولا تسجيل دخول ولا فترة تجريبية ولا علامة مائية. ولا حدّ لعدد الملفات ولا لأحجامها كذلك، إذ لا خادم يدفع ثمنها — فالعمل يجري على جهازك أنت. ويحمل الموقع إعلانات، وهي ما يدفع تكاليفه؛ ولا يُعطى المعلنون شيئاً عن صورك.
### هل يعمل دون اتصال؟
نعم، وفاكُّ الترميز معه. حمِّل الصفحة مرة، ثم اقطع اتصالك بالإنترنت فيظل يعمل على صورك كما كان تماماً. وهذا أيضاً أقوى برهان متاح على أنه لا يُرفع شيء: فمحوِّلٌ يرسل ملفات HEIC بعيداً ليفكّ ترميزها كان سيتوقف في اللحظة التي تقطع فيها الاتصال، وهذا لا يتوقف.
## كيف يمكن التحقق من وعد الخصوصية
- **صورك لا سبيل لها إلى الخروج.** تُسمّي Content-Security-Policy كل عنوان يجوز لهذه الصفحة الاتصال به، وليس واحد منها لنا. فلا يوجد هنا طرفٌ تُجمَع عنده ملفاتك، ولا في الشيفرة ما يرسلها إليه لو وُجد.
- **فاكُّ الترميز جاء من هنا، ولا يذهب إلى أي مكان.** إن HEIC هي إطار HEVC داخل صيغة حاوية، ولا يفكّ ترميزها متصفحٌ غير Safari، فتشحن هذه الصفحة `libheif` مُصرَّفاً إلى WebAssembly — نحو 1.4 MB، مودَعاً في هذا المستودع، يُخدَم من هذا الأصل، وتخبّئه عاملُ الخدمة كما تخبّئ كل ملف آخر هنا. ولا يُجلَب من شبكة توصيل محتوى، لأن ذلك يضع طرفاً ثالثاً في طريق كل زيارة ويوقف عمل الأداة دون اتصال. والثنائي داخل النص البرمجي لا إلى جانبه، وذلك بالضبط كي لا يلزم أي جلب لتشغيله.
- **لا شيء هنا يجلب شيئاً.** لا يوجد `fetch` ولا `XMLHttpRequest` ولا `sendBeacon` في أي ملف كُتِب لهذه الأداة. أما المحرّك المودَع، فهو ككل بناء Emscripten يحوي مسارات التحميل التي كانت ستجلب ملف `.wasm` من عنوان؛ وهي مسارات لا تُسلَك، لأن الثنائي في اليد أصلاً — ولو سُلِكت لكان `connect-src` يُسمّي نقاط قياس Google لا غير، فيرفضها المتصفح. فالسياسة هي البرهان، لا الوعد.
- **البيانات الوصفية تُقرأ هنا وتُعرَض عليك.** تقول القائمة على الصفحة ما تحمله كل صورة — التاريخ، والكاميرا، وهل فيها إحداثيات GPS — لأن ذلك شيء قد تحبّ معرفته قبل أن تناول أحداً ملف JPEG. ويقرؤه `src/boxes.js` من الملف في هذا المتصفح، ويُعرَض على هذه الصفحة، ويُكتَب في ملف JPEG أو يُترَك، كما تختار أنت تماماً. ولا يوجد في هذا المستودع أي حدث تحليلات مخصّص يحمل اسم ملف أو تاريخاً أو إحداثياً أو عدداً.
- **ما تُحمّله Google، وما لا يُعطى لها.** نصوص الإعلانات والقياس تأتي من Google، وزر التبرّع من Buy Me a Coffee. ولا يُعطى أيٌّ منها شيئاً عن صورك. وكل سطر يقرأ ملفاً أو يفكّ ترميزه أو يكتبه يُخدَم من هذا الأصل نفسه ومُدرَج في المستودع.
- **يعمل دون اتصال.** حمِّل الصفحة مرة واقطع الاتصال بالشبكة، وتبقى الأداة كما هي — فقد خُبِّئ فاكُّ الترميز معها. وهذا أبسط برهان على الإطلاق، وهو هنا أقوى منه في أي موضع آخر من هذا الموقع: فمحوِّلٌ يرسل صورك بعيداً ليفكّ ترميزها ما كان له أن يستطيع ذلك أبداً.
**تحقّق بنفسك.** لا شيء مما سبق عليك تصديقه دون تحقق. تُولَّد هذه الصفحة من القوالب والإعدادات في المستودع بواسطة سكربت بناء يمكنك قراءته وتشغيله بنفسك، والنتيجة موجودة في فرع `dist` — فقارِن إذن بين ما يُقدَّم فعلا وما ينتجه بناء المصادر: https://github.com/A-Box-of-Tools/website
الملفات الجديرة بالقراءة أولا هي `config/site.toml` من أجل سياسة أمان المحتوى (Content-Security-Policy)، و`src/heif.js` لكيفية تحميل فاكِّ الترميز وما يُسمح له به، و`src/boxes.js` لتحليل الحاوية الذي يجد البيانات الوصفية للصورة، و`src/exif.js` لما يحدث لتلك البيانات في طريقها إلى JPEG. أما المحرّك نفسه فهو `vendor/libheif.js`، دون تعديل، ورخصته إلى جانبه.
كيف تحوِّل صور HEIC إلى JPG
اختر صور HEIC. أفلِتها على المُنتقي أو اخترها يدوياً، من نسخة احتياطية لهاتف أو من مجلد على سطح المكتب مباشرة. يقرؤها المتصفح من قرصك، ولا يُرسَل شيء إلى أي مكان أثناء ذلك. وتقول القائمة ما كلُّ واحدة منها وما بداخلها.
انظر ماذا تحمل الصور. يُسمّي كل صف تاريخ الالتقاط، والكاميرا، و— بالأخضر، لأنه الجزء الجدير بالانتباه — هل يحمل الملف إحداثيات GPS. ويُقرأ ذلك من الحاوية دون فكّ ترميز الصورة، فلا يكلّف شيئاً ويظهر في الحال.
اختر صيغة، واحسم أمر التفاصيل. JPEG ما لم يكن لديك سبب: فهي الصيغة التي تُفتَح في كل مكان، وذلك هو مغزى التحويل كله. ومِزلاج الجودة عند 92، وهو الإعداد الذي يصعب عنده تمييز الصورة عن أصلها. أما مربع الاختيار فيقرّر هل يأتي معها التاريخ والكاميرا والموقع.
اضغط «حوِّل»، ثم نزِّل. يصل فاكُّ الترميز عند أول تحويل — نحو 1.4 MB، مرة واحدة — ثم تُفكّ ترميز كل صورة بعدها وتُكتَب على جهازك أنت. ملف واحد يعطيك زر تنزيل؛ وعدة ملفات تعطيك ملف zip كذلك.
النسخة الأطول
الصورةُ التي حفظها هاتفُك، والصيغةُ التي لا يفتحها شيءهواتفُ iPhone تحفظ الصور بصيغة HEIC، ونصفُ الإنترنت لا يستطيع فتح واحدة. ما هذه الصيغة، ولماذا لا يفكّ ترميزها إلا Safari، وماذا يكلّف التحويلُ الصورةَ، وكيف تفعله دون أن ترفع الصور إلى أحد.
لا. يقرأ متصفحك أنت الملف ويفكّ ترميزه ويكتبه على جهازك أنت. لا تملك هذه الأداة أي وظيفة شبكية على الإطلاق — فهي لا تجلب شيئاً ولا ترسل شيئاً — وContent-Security-Policy الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به، وليس واحد منها لنا. والشيء الوحيد الذي يُحمَّل فعلاً هو فاكُّ الترميز نفسه، وهو يأتي من هذا الموقع، مرة واحدة، قبل أن تدخل صورتك في الأمر أصلاً.
لماذا تُنزِّل هذه الصفحة 1.4 MB في المرة الأولى؟
لأن HEIC هي صيغة الصور الوحيدة التي لا يفتحها المتصفح. فهي إطار HEVC في حاوية، ولا يملك فاكَّ ترميز لها إلا Safari على عتاد Apple؛ أما Chrome وFirefox وEdge فترفض الملف ببساطة. فمحوِّل HEIC يحتاج إلى فاكِّ ترميز من مكان ما، والأمكنة اثنان لا ثالث لهما: خادم، أو الصفحة. وقد اختار كل محوِّل آخر الخادمَ، وهو بالضبط سبب حاجتهم جميعاً إلى رفع صورك. أما هذا فيحمل libheif مُصرَّفاً إلى WebAssembly بدلاً من ذلك. يُخدَم من هذا الموقع، ويُخبَّأ بعد أول زيارة، وهو ثمن ألا تذهب صورك إلى أي مكان، كل الثمن.
هل يحتفظ ملف JPEG بالتاريخ والكاميرا والموقع؟
إن أردت له ذلك، وهو مربع اختيار على الصفحة. فإن تُرِك مفعَّلاً نُسِخت كتلة EXIF من ملف HEIC وكُتِبت في ملف JPEG كما كتبها الهاتف تماماً، فتظل الصورة المحوَّلة تُرتَّب بيوم التقاطها لا بيوم تحويلها — وهي الشكوى المعتادة من محوِّلات HEIC. ويُغيَّر وسم واحد لا غير: الاتجاه، إذ يُضبَط على «قائم»، لأن الدوران طُبِّق على البكسلات أصلاً، وعارضٌ يطبّقه ثانيةً كان سيقلب كل صورة طولية على جنبها. أطفئ مربع الاختيار فيخرج ملف JPEG بالصورة لا غير.
هل يزيل إحداثيات GPS؟
يخبرك بوجودها، ثم يفعل ما تطلبه أنت. فصفُّ كل صورة يقول هل يحمل الملف إحداثيات قبل أن تحوِّل شيئاً، وهو أكثر مما يفعله الهاتف. وإلغاء «أبقِ على التاريخ والكاميرا والإعدادات» يتركها خارج ملف JPEG مع كل ما عداها؛ وتركُه مفعَّلاً ينقلها معها. وإن كان مرادك أن تتصفّح الوسوم بالتفصيل، أو أن تزيلها من صور هي JPEG أصلاً، فـ عارض EXIF ومُزيله هو الأداة لذلك، وهو يفعله دون إعادة ضغط الصورة.
هل يُعاد ضغط الصورة؟
نعم، ولا بدّ من ذلك: فـ HEIC وJPEG مرمِّزان مختلفان، فلا سبيل إلى الانتقال من أحدهما إلى الآخر دون فكّ ترميز الصورة وإعادة ترميزها. وما تتحكّم فيه أنت هو كم يكلّف ذلك. فمِزلاج الجودة افتراضه 92، ويصعب عنده جداً تمييز الصورة عن أصلها، وPNG موجودة في القائمة للحالة التي لا تريد فيها خسارة البتة ولا يضيرك أن يصير الملف خمسة أو عشرة أضعاف حجمه.
ماذا لو كان اسم الملف .jpg وهو في الحقيقة HEIC؟
يعمل رغم ذلك. فكل ملف يُفلَت هنا يُعرَّف ببايتاته الأولى لا باسمه، لأن الاسم هو ما قرّره آخرُ تطبيق لمس الملف — وملفُّ HEIC وصل باسم «.jpg» من أشيع ما يجعل الناس يبحثون عن أداة كهذه. أما الملف الذي هو JPEG أو PNG حقاً فيُرفَض برسالة تقول ذلك، بدل أن يُحوَّل إلى نسخة من نفسه.
هل يستطيع تحويل صورة حيّة أو لقطة متتابعة؟
الصور الساكنة التي فيها، نعم. فملف HEIC قد يحمل أكثر من صورة، وكل صورة يحملها تُحوَّل وتُسمّى باسم الأصل ورقمٌ في آخرها. أما النصف المرئي المتحرّك من الصورة الحيّة فملف منفصل يحفظه الهاتف بجانب ملف HEIC، فليس هنا كي يُحوَّل. وخرائط العمق والمصغَّرات موجودة في الحاوية لكنها ليست صوراً طلبها أحد، فتُترَك وشأنها.
لماذا لا يقبل ملف AVIF؟
لأنه لا شيء يُفعَل به. فـ AVIF هي الحاوية نفسها التي لـ HEIC وفيها AV1 بدل HEVC، وكل متصفح حالي يفكّ ترميزها أصلاً — فالمحوِّل سيكون شاحناً ميغابايتاً من المحرّك لحلّ مشكلة ليست عندك. وإن احتجت إلى AVIF بصيغة JPEG، فـ ضاغط الصور و أداة تغيير حجم الصور كلاهما يقرأ AVIF ويكتب JPEG بفاكِّ الترميز الذي في متصفحك أصلاً.
هل هو مجاني، وهل أحتاج إلى حساب؟
هو مجاني، ولا حساب ولا تسجيل دخول ولا فترة تجريبية ولا علامة مائية. ولا حدّ لعدد الملفات ولا لأحجامها كذلك، إذ لا خادم يدفع ثمنها — فالعمل يجري على جهازك أنت. ويحمل الموقع إعلانات، وهي ما يدفع تكاليفه؛ ولا يُعطى المعلنون شيئاً عن صورك.
هل يعمل دون اتصال؟
نعم، وفاكُّ الترميز معه. حمِّل الصفحة مرة، ثم اقطع اتصالك بالإنترنت فيظل يعمل على صورك كما كان تماماً. وهذا أيضاً أقوى برهان متاح على أنه لا يُرفع شيء: فمحوِّلٌ يرسل ملفات HEIC بعيداً ليفكّ ترميزها كان سيتوقف في اللحظة التي تقطع فيها الاتصال، وهذا لا يتوقف.