এর কারণ, সম্ভবত, মূল GIF ইমেজ প্রতি দ্বিতীয় ফ্রেম খালি কারণ। প্রতিটি খালি স্তরটি প্রতিস্থাপনের পরিবর্তে পূর্ববর্তী একটিকে একত্রিত করার জন্য সেট করা হয়েছে, চিত্রম্যাগিকের মতোই এটির সাথে অনেক বেশি অনুমতি দেয় মীমাংসা করা কমান্ড। আপনি জিম্প সঙ্গে এটি কাছাকাছি দেখতে পারেন।
খালি ফ্রেমগুলি মুছে ফেলার জন্য আপনাকে নিজে নিজে বা স্ক্রিপ্ট দিয়ে এটি করতে হবে, যেমন। ইমেজ ফাইলের একটি সিরিজ বিভক্ত, প্রতি দ্বিতীয় ফ্রেম মুছে ফেলুন এবং মূল gif মধ্যে তাদের মার্জ। উদাহরণ হয় এখানে ।
সম্পাদনা: যেহেতু gif চিত্রগুলি ব্যবহারকারী ইনপুট, তাই আমি ভয় পাচ্ছি যে এটি স্বয়ংক্রিয়ভাবে 100% নিশ্চিত করার উপায় নেই। ফ্রেমটি খালি থাকলেও আপনি এটি সনাক্ত করতে পারেন (একক রঙ রয়েছে), তবে আপনি ইচ্ছাকৃতভাবে একক রঙের ফ্রেমে থাকা GIF চিত্রগুলি কাটাবেন। Futhermore শুধুমাত্র আংশিক ওভারলে যোগ যে একক রঙ ফ্রেম হতে পারে।
ইমেজম্যাগিক থেকে তথ্য ব্যবহার করে একক রঙের ফ্রেমগুলি সরানো একটি অশোধিত ব্যাশ স্ক্রিপ্ট এখানে সনাক্ত করা কমান্ড।
#!/bin/bash
convert animation.gif +adjoin tmp_%04d.png
j=0
for i in $(ls tmp_*.png); do
if [ $(identify -verbose $i | grep Colors: | awk '{ print $2; }') != "1" ]; then
cp $i select_$(printf %04d $j).png;
(( j++ ))
fi
done
montage $(ls select_*) -tile x1 -geometry '1x1+0+0<' -alpha On -background 'rgba(0, 0, 0, 0.0)' -quality 100 result.png