صيغة WebP أصبحت شائعة بسبب قدرتها على ضغط الصور مع الحفاظ على الجودة، لكنها لا تعمل دائمًا بشكل مثالي على جميع المتصفحات أو الأجهزة. هذا قد يسبب مشاكل في عرض الصور أو مشاركتها، خصوصًا عند التعامل مع منصات لا تدعم WebP بشكل كامل. الحل الفعال هو الاعتماد على محول ملفات مستضاف ذاتيًا يسمح بتحويل الصور من WebP إلى صيغ مثل PNG أو JPG بسهولة وسرعة، مع التحكم الكامل في العملية دون الحاجة لأدوات خارجية محدودة.
لقد علمني الإنترنت أنني متأكد من ثلاثة أمور: الموت، والضرائب، وحقول تحميل الملفات التي لا تقبل صور WebP. لا أعلم بوجود أي حلول ذاتية الاستضافة للمشكلتين الأوليين، لكنني تمكنت من حل المشكلة الأخيرة بتشغيل خدمة مفتوحة المصدر تُسمى ConvertX على جهاز Raspberry Pi الخاص بي.
لماذا ما زلت أُحوّل ملفات WebP؟
في عالم مثالي، لما كنتُ أهتم بالتحويل، بل كنتُ سأترك ملفات WebP التي أُنزّلها تعيش حياتها السعيدة والموفرة للتخزين. صيغة WebP جيدة بالفعل. فهي تُؤدي وظيفة الضغط مع فقدان البيانات كما في JPEG، ووظيفة الضغط والشفافية بدون فقدان البيانات كما في PNG، ووظيفة الرسوم المتحركة كما في GIF – بل أفضل.
المشكلة ليست في وظيفة WebP، بل في دعمها. بعض التطبيقات والمواقع الإلكترونية تطلب صورًا ولكنها لا تستطيع قبول ملفات WebP. أصبحت المشكلة أقل شيوعًا مما كانت عليه في السابق، لكن قبولها لا يزال غير شامل. يعتمد دعم WebP بالكامل على المطورين، وحتى يفعلوا، سأضطر إلى مواصلة التحويل إلى JPEG وPNG.
مشكلتي مع المحولات المجانية عبر الإنترنت
في هذه المرحلة، قد تتساءل لماذا لا أستخدم أحد مواقع تحويل الملفات هذه. أولًا، المحولات المجانية عبر الإنترنت غير آمنة بشكل عام. حتى لو كانت سياسة الخصوصية لتطبيق الويب تزعم أن مالكه لن يخزن ملفاتك، أو أنه سيوفر نوعًا من الحماية عند القراءة أو جدولًا زمنيًا للحذف، فلا سبيل لك لتأكيد هذه الادعاءات. يُعد تحميل ملف WebP بمحتوى حساس مخاطرة كبيرة.
هذه مجرد البداية. يمكن لمواقع الويب التي تزورها دائمًا تسجيل عنوان IP الخاص بك وجمع بيانات أخرى عنك عند زيارتها. كما أنها غالبًا ما تكون مليئة بالإعلانات التي تُبطئ جهاز الكمبيوتر، والتي تحاول أحيانًا إقناعك بالنقر عليها بدلًا من واجهة المحول. أفضل تجنب هذه المواقع المُسببة للمشاكل تمامًا.
أُجري تحويل WebP بنفسي باستخدام ConvertX.
لأنني لا أرغب في الاعتماد على مواقع خارجية، بل وأرغب أيضًا في سهولة استخدام هذه المحولات الإلكترونية، قررتُ استضافة محولي الخاص. لحسن الحظ، لم أضطر إلى إنشائه من الصفر.
ConvertX هي خدمة تحويل ملفات مفتوحة المصدر، تستضيفها بنفسك باستخدام Docker. تتميز بواجهة ويب بسيطة للغاية، يمكنك حفظها في المفضلة لسهولة الوصول إليها. اسحب وأفلت الملفات التي تريد تحويلها، بشكل فردي أو جماعي، ثم حدد التنسيق الذي تريده. انقر على “تحويل” وانتظر حتى يُجري ConvertX عملية التحويل محليًا – لا حاجة إلى أي خدمة خارجية مشبوهة.
واجهة ConvertX مُحسّنة أيضًا للأجهزة المحمولة، ما يُتيح لك إجراء التحويلات من هاتفك أيضًا. يُمكن لأي شخص على الشبكة المحلية الوصول إلى ConvertX واستخدامه؛ ما عليهم سوى معرفة اسم المستخدم الذي تُنشئه عند التشغيل الأولي. بفضل الخبرة التقنية، يُمكنك أيضًا الوصول إلى الخدمة من خارج منزلك كما تفعل مع أي خادم آخر.
من الناحية الفنية، يُجمّع ConvertX ويُؤتمت العديد من أدوات الملفات والتنسيقات مثل VIPS وImageMagick وFFmpeg وغيرها. لهذا السبب، يُتيح لك ConvertX خيارات مُتعددة للتحويل إلى تنسيقات ملفات مُحددة؛ لديك العديد من الأدوات في متناول يدك. إذا لم تكن متأكدًا من الأداة المُناسبة، فاستخدم أول أداة مُقترحة. إذا لم تكن راضيًا عن النتائج، فجرّب أداة أخرى.
بدء استخدام ConvertX
يمكنك تثبيت ConvertX وتشغيله أينما تُثبّت Docker. قررتُ تثبيته على جهاز Raspberry Pi الخاص بي حيث أستضيف بالفعل العديد من الخدمات. أستخدم DietPi على جهازي لتسهيل تثبيت البرامج الجديدة، لذا قمت بتثبيت Docker وDocker Compose بسرعة، ثم قمت بإنشاء ملف يسمى docker-compose.yml ولصقت فيه النص التالي الذي أخذته من ملف README الخاص بـ ConvertX:
# docker-compose.yml
services:
convertx:
image: ghcr.io/c4illin/convertx
container_name: convertx
restart: unless-stopped
ports:
- "3000:3000"
environment:
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() if unset
# - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection
volumes:
- ./data:/app/data
لأنني لا أخطط لإتاحة ConvertX خارج شبكتي المنزلية، شعرتُ بأمان عند إلغاء التعليق في سطر HTTP. لمن لا يعرف لغة المطورين، يعني إلغاء التعليق إزالة رمز الجنيه (#) الأول من بداية السطر. بهذه الطريقة، لا أحتاج إلى أي شهادات أمان للبدء.
بعد حفظ هذا الملف، شغّلتُ أمر docker compose. ثم فتحتُ متصفح الكمبيوتر المحمول وأدخلتُ عنوان IP لجهاز Raspberry Pi متبوعًا بالمنفذ الافتراضي، 3000. لو كنتُ أشغل ConvertX مباشرةً على الكمبيوتر المحمول بدلًا من Pi، لكنتُ كتبتُ localhost:3000 في شريط العناوين.
عند وصولك الأول إلى ConvertX، سيُطلب منك إدخال بريد إلكتروني وكلمة مرور لحسابك. لا تقلق، لا يوجد تسجيل عبر الإنترنت هنا. ما لم تُحدد متغير البيئة الذي يسمح بتسجيل حسابات جديدة، فسيكون هذا البريد الإلكتروني وكلمة المرور هما الطريقة الوحيدة للوصول إلى ConvertX. الغرض من تسجيل الدخول، حتى لو كنت تخطط لاستخدام نسخة ConvertX وحدك، هو منع المستخدمين غير المصرح لهم من الاستفادة من موارد تحويل الملفات لديك.
ConvertX ليس مقتصرًا على WebP
كما لاحظتَ بالفعل، يُمكن لبرنامج ConvertX التعامل مع تحويلات ملفات أكثر بكثير من مجرد تحويل WebP إلى JPG أو PNG. فهو يُتيح لك أيضًا تحويل ملفات صور أخرى، بالإضافة إلى عدد كبير من صيغ ملفات المستندات والفيديو والكتب الإلكترونية. عند إعداد ConvertX، قد تجد نفسك تعتمد عليه أكثر مما توقعت.
هناك طرق أخرى لتجنب برامج التحويل عبر الإنترنت وبرامج تحرير الصور المُعقدة عند العمل مع ملفات WebP. اختصارات ماك مفيدة لتحويل WebP تلقائيًا. كما يُمكنك تحويل الصور دفعةً واحدة عبر طرفية لينكس.
التعامل مع صور WebP قد يكون مزعجًا أحيانًا عندما تواجه مشكلات في التوافق أو العرض. استخدام محول ملفات مستضاف ذاتيًا يوفر حلاً عمليًا يمنحك مرونة أكبر وتحكمًا كاملًا في عملية التحويل. بهذه الطريقة يمكنك الاستفادة من مزايا WebP مع ضمان سهولة مشاركة الصور واستخدامها على أي منصة أو جهاز.