OOZOU
تواصلوا معنا
العودة إلى المدونة

LOL Errors: لقطات طريفة لأخطاء التطبيق

تعرّفوا على طريقة التقاط لقطة متحركة بصيغة GIF في كل مرة يقع فيها خطأ في التطبيق.

4 ديسمبر 2014
3 دقائق للقراءة
LOL Errors: لقطات طريفة لأخطاء التطبيق

استلهمنا الفكرة من lolcommits، وهي أداة تلتقط صورة لكم في كل مرة تنفّذون فيها git commit. ومن باب المرح، قررنا بناء شيء مشابه: لقطات متحركة تُلتقط في كل مرة يقع فيها خطأ في التطبيق، مع عرض رسالة الخطأ فوق اللقطة. الأداة تدعم حاليًا OS X فقط.

مثال

عندما يظهر لنا خطأ.

نحصل أيضًا على صورة مطوّر مسكين يكاد ينتف شعره من الإحباط :-)

التثبيت

ستحتاجون إلى تثبيت ImageMagick و FFmpeg. وإذا كنتم تستخدمون Homebrew فالأمر بهذه البساطة:

brew install imagemagick
brew install ffmpeg
lang-bash

بعد ذلك يمكنكم تثبيت الـ gem بإضافته إلى ملف Gemfile في تطبيقكم.

gem 'lolerrors', group: :development
lang-ruby

هذا كل شيء! أنتم الآن جاهزون لالتقاط لقطات طريفة لأنفسكم وأنتم تصارعون تطبيقكم. ستُحفظ الصور المتحركة الناتجة في ~/lolerrors

يمكنكم الاطلاع على الكود هنا https://github.com/oozou/lolerrors.

مشكلة تحسين ملفات GIF والتحريك المدمج (coalesced animation)

حاولنا تحويل ملف الفيديو الملتقط بصيغة MOV إلى GIF باستخدام FFmpeg، ثم تحسينه باستخدام ImageMagick. لكن الملف بعد التحسين ظل كبيرًا نسبيًا (نحو 1 MB) مقارنة بنسخة MOV (نحو 150 KB). يبدو أن الضغط لم يكن بالقدر المتوقع، كما ظهرت مشكلات أخرى مثل اهتزاز النص المعروض فوق الصورة المتحركة.

تبيّن أن السبب مرتبط بنوع التحريك في ملف GIF. فالملف الذي يحوّله FFmpeg يكون من نوع overlay animation، وهو أبسط أنواع التحريك المحسّن على مستوى الإطارات، والنوع الافتراضي عند تحويل ملف فيديو إلى GIF. في هذا النوع، يضيف كل إطار فوق ما سبقه البكسلات الجديدة فقط.

للأسف، الفيديو الملتقط ليس بطبيعته تحريكًا من هذا النوع، لذلك قد تفشل عملية التحسين هذه فشلًا ذريعًا. لكن يمكننا تحويله إلى coalesced animation، حيث يُملأ كل إطار بالكامل ويعرض جميع البكسلات.

(الصور من http://www.imagemagick.org/Usage/anim_basics)

هذا النوع من التحريك أسهل في المعالجة اللاحقة، فهو يجعل ملف GIF المحسّن أصغر ويحافظ على الجودة. ويكفي لتحويله أن نضيف المعامل -coalesce إلى الأمر convert في ImageMagick.

هذا مثال على أمر يحوّل ملف GIF إلى coalesced animation ويضيف فوقه نصًا.

convert path/to/original/file \
          -coalesce \
          -gravity South \
          -fill white \
          -stroke black \
          -strokewidth 2 \
          -pointsize 24 \
          -annotate +0+10 "some text" \
        path/to/new/file
lang-bash

انحلّت مشكلة اهتزاز النص، وأصبح بالإمكان تحسين ملف GIF إلى حجم أصغر بكثير من ذي قبل :-)

Related Articles

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

كيف أصمّم برمجيات؟ دليل المبتدئين لأصحاب الأعمال

تصميم البرمجيات عملية ممتعة لكنها معقدة، تتطلب الإبداع والتفكير المنطقي ومهارات حل المشكلات.

اقرأوا المزيد
مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

مستقبل الحوسبة الطرفية: ما تحتاج الشركات إلى معرفته

يتطور المشهد الرقمي بسرعة، وعلى الشركات أن تتكيّف لتواكب الطلب المتزايد على السرعة والكفاءة والمعالجة في الوقت الفعلي.

اقرأوا المزيد
مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

مستقبل قطاع التجزئة: الذكاء الاصطناعي والواقع المعزّز واتجاهات التحوّل الرقمي

يتطور قطاع التجزئة بوتيرة غير مسبوقة بفضل الذكاء الاصطناعي (AI) والواقع المعزّز (AR) وتقنيات التحوّل الرقمي. فلم تعد المتاجر التقليدية مجرد أماكن لبيع المنتجات، بل أصبحت متاجر ذكية وتفاعلية.

اقرأوا المزيد

Have a Project in Mind?

Let's discuss how we can help bring your ideas to life with our expertise in web and mobile development.

ابدأوا المحادثةhello@oozou.com
OOZOU Logo

بانكوك · سنغافورة · هونغ كونغ

X
Facebook
Instagram
LinkedIn
OOZOU Co., Ltd.
548 One City Centre
Ploenchit Road
Bangkok 10330
Thailand
+66 2544 0000
hello@oozou.com

الخدمات

  • تطوير الويب
  • وكلاء الذكاء الاصطناعي والذكاء الاصطناعي التوليدي
  • تطوير تطبيقات الجوال
  • تحليلات البيانات وهندستها
  • تصميم تجربة المستخدم وواجهته (UX/UI) وتصميم المنتجات
  • التحوّل الرقمي

الشركة

  • من نحن
  • الوظائف
  • المدونة
  • دراسات الحالة
  • عروض حية
  • تعلّمت اليوم
  • تواصل معنا

المزيد

  • القطاعات
  • شبكة الشركاء
© 2026 OOZOU. جميع الحقوق محفوظة.
سياسة الخصوصيةمدونة قواعد السلوكسياسة مكافحة الرشوة والفساد