ImageMagick: জিআইএফ স্প্রেট শীট - প্রতি সেকেন্ড ফ্রেম খালি


-1

আমি ImageMagick ব্যবহার করে জিআইএফকে স্প্রাইট শীট ক্রম (.png) রূপান্তর করার চেষ্টা করছি। এই মুহূর্তে আমি এই দুটি কমান্ড ব্যবহার করছি:

convert -layers dispose ezgif.gif tmp.gif

montage tmp.gif -tile x1 -geometry '1x1+0+0<' -alpha On -background 'rgba(0, 0, 0, 0.0)' -quality 100 seq.png

এটি GIFs এর বেশিরভাগ ক্ষেত্রে খুব ভাল কাজ করে তবে এটি একের পর এক নয়।

https://i.projectbea.st/WF2ygx.gif

এটা এখানে সব ভাল দেখায়। কিন্তু যখন আমি এটি রূপান্তর করি, আপনি দেখতে পারেন যে প্রতিটি দ্বিতীয় ফ্রেম খালি।

https://i.projectbea.st/pJAlq1.png

কেন এবং কিভাবে এটা ঠিক করতে?


আপনার ইমেজ URL গুলো কোন অবৈধ SSL শংসাপত্রের কারণে কাজ করে না। আমি আপনাকে Imgur বা অন্য ইমেজ হোস্টিং সাইটে আপলোড করার পরামর্শ দিচ্ছি। দেখুন দয়া করে কিভাবে জিজ্ঞাসা এবং আমাদের নিতে সফর
Burgi

আমি সব তথ্য হারিয়ে। মনে হচ্ছে যে এটি যেভাবেই সমাধান করা অসম্ভব তাই ...
GTX

উত্তর:


1

এর কারণ, সম্ভবত, মূল 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

যদি আমি প্রতি সেকেন্ড ফ্রেম মুছে ফেলি তবে এটি অন্যান্য GIF গুলির জন্য ফ্রেমগুলি এড়িয়ে যাবে। (ব্যবহারকারীদের দ্বারা জিআইএফ আপলোড করা হয়)
GTX
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.