উত্তর:
প্রথম রান:
convert do.gif -coalesce temporary.gif
তারপর
convert -size <original size> temporary.gif -resize 24x24 smaller.gif
gifsicle --resize 24x24 > do-24.gif
খুব করতে পারেন
-coalesce
+ + -deconstruct
এর পরে -coalesce
, আপনি সম্ভবত একটি যুক্ত করতে চান -deconstruct
:
convert in.gif -coalesce -resize 256x -deconstruct out-deconstruct.gif
সমস্যার মূল কারণটি হ'ল আপনার ইনপুট জিআইএফ সঠিকভাবে হ্রাস করা হয়েছিল: জিআইএফ পরবর্তী ফ্রেমটিকে একটি অফসেটে পূর্ববর্তী ফ্রেম থেকে কেবল পরিবর্তিত আয়তক্ষেত্র হতে দেয়।
-coalesce
তারপরে সমস্ত ফ্রেমগুলি মূল আকারে প্রসারিত করে যা আকার পরিবর্তন করে, তবে এটি আপনার ইনপুট চিত্র হিসাবে ফ্রেমগুলিকে পুনরায় সংকুচিত করে না: এটির -deconstruct
জন্য প্রয়োজনীয়!
এই উত্তর থেকে পরীক্ষার ডেটা ব্যবহার করে: আমি কীভাবে স্থির চিত্রগুলি থেকে একটি অ্যানিমেটেড জিআইএফ তৈরি করতে পারি (পছন্দমত কমান্ড লাইনের সাথে)? আমরা এর সাথে এটি পরিষ্কারভাবে দেখতে পারি identify
:
$ identify out-convert.gif | head -n 3
out-convert.gif[0] GIF 1024x1024 1024x1024+0+0 8-bit sRGB 256c 16.7865MiB 0.020u 0:00.019
out-convert.gif[1] GIF 516x516 1024x1024+252+257 8-bit sRGB 256c 16.7865MiB 0.030u 0:00.019
out-convert.gif[2] GIF 515x520 1024x1024+248+257 8-bit sRGB 256c 16.7865MiB 0.030u 0:00.019
$ convert out-convert.gif -resize 256x out.gif
$ identify out.gif | head -n 3
out.gif[0] GIF 256x256 256x256+0+0 8-bit sRGB 256c 5.0479MiB 0.000u 0:00.009
out.gif[1] GIF 256x256 256x256+125+128 8-bit sRGB 256c 5.0479MiB 0.000u 0:00.009
out.gif[2] GIF 256x258 256x256+123+128 8-bit sRGB 256c 5.0479MiB 0.000u 0:00.009
$ convert out-convert.gif -coalesce -resize 256x out-coalesce.gif
$ identify out-coalesce.gif | head -n 3
out-coalesce.gif[0] GIF 256x256 256x256+0+0 8-bit sRGB 256c 1.97683MiB 0.010u 0:00.009
out-coalesce.gif[1] GIF 256x256 256x256+0+0 8-bit sRGB 256c 1.97683MiB 0.010u 0:00.009
out-coalesce.gif[2] GIF 256x256 256x256+0+0 8-bit sRGB 256c 1.97683MiB 0.010u 0:00.009
$ convert out-convert.gif -coalesce -resize 256x -deconstruct out-deconstruct.gif
$ identify out-deconstruct.gif | head -n 3
out-deconstruct.gif[0] GIF 256x256 256x256+0+0 8-bit sRGB 256c 1.87942MiB 0.010u 0:00.010
out-deconstruct.gif[1] GIF 135x135 256x256+60+61 8-bit sRGB 256c 1.87942MiB 0.010u 0:00.010
out-deconstruct.gif[2] GIF 135x136 256x256+59+61 8-bit sRGB 256c 1.87942MiB 0.010u 0:00.010
out.gif
আউট-coalesce.gif
আউট-deconstruct.gif
প্রথমত, আমরা কেমন ইনপুট ফাইল করা, out-convert.gif
, আসলে সংকুচিত ছিল ফ্রেম 2 শুধুমাত্র যেহেতু 516x516
অফসেটে 252+257
, পূর্ণ আকারের ফ্রেম 1 থাকাকালীন 1024x1024
।
তারপরে, আমরা যদি তিনটি রূপান্তর তুলনা করি:
out.gif
: সমস্ত ফ্রেমগুলি 256x256
বড় বা বড় এবং প্রায় 5MiB এ বিশাল, কেন?
দৃশ্যত ভুল, যেহেতু প্রায় আনুমানিক 256x256
ফ্রেমগুলিতে একটি শূন্য-অফসেট থাকে, যেমন 125+128
ফ্রেম 2!
out-coalesce.gif
: সমস্ত ফ্রেম হয় 256x256
এবং সঠিক অফসেট থাকে 0+0
।
আউটপুট দৃশ্যত সঠিক দেখায় তবে আউটপুট ফাইলের আকার 2.0 মাইবি, যা এর চেয়ে বড় is out-deconstruct.gif
out-deconstruct.gif
: সঙ্কুচিত ফ্রেম, চূড়ান্ত আউটপুট আকার 1.9 মাইবি।
এর চেয়ে যথেষ্ট ছোট নয় out-coalesce.gif
, তবে আমি মনে করি এটি কেবল কারণ কৃষ্ণভূমি সত্যিই খুব ভালভাবে সংকোচিত হয়, এবং এটি সাধারণভাবে খুব তাৎপর্যপূর্ণ হতে পারে।
ffmpeg এবং gifsicle
আমি নিম্নলিখিত কমান্ডগুলি চেষ্টা করেছিলাম:
ffmpeg -i out-convert.gif -vf scale=256:-1 out-ffmpeg-small.gif
gifsicle --resize 256x256 out-convert.gif > out-gifsicle.gif
এবং উভয়ই আরও ছোট সঠিকভাবে 1.5 মাইবি আউটপুট তৈরি করেছে।
আরও দেখুন: আমি কীভাবে স্থির চিত্রগুলি থেকে একটি অ্যানিমেটেড জিআইএফ তৈরি করতে পারি (পছন্দমত কমান্ড লাইনের সাথে)?
টোডো: তারা কেন এটির চেয়ে ছোট তৈরি করতে পারে convert
? তারা কি আরও ভাল ন্যূনতম বিচ্ছিন্ন আয়তক্ষেত্রগুলি বা অন্য কিছু নির্বাচন করছে?
উবুন্টু 18.10, ffpmeg 4.0.2-2, ইমেজম্যাগিক 6.9.10-8 এ পরীক্ষিত।
আমি এর সাথে পরিচিত হওয়ার সাথে সাথে আমি চিত্রগ্রাহক সমাধানের সন্ধান করছিলাম, তবে শেষ পর্যন্ত আমি @ স্যামের পরামর্শ নিয়ে গেলাম gifsicle
। এটি আমি যা চেয়েছিলাম ঠিক তা করেছে, কোনও ঝামেলা নেই।
ফলস্বরূপ ফাইল আকারটি অনেক উপায়ে অপ্টিমাইজ করতে পারে, তবে আমি কেবল আকার হ্রাস এবং রঙের সংখ্যা হ্রাস করে চলেছি। কবজির মতো কাজ করেছেন:
gifsicle --resize 48x48 --colors 16 original.gif > smaller.gif
-coalesce
"একটি সম্পূর্ণ বদলে একটি অ্যানিমেশন ক্রম প্রতিটি বিন্দুতে অ্যানিমেশন দৃশ্য, একটি সত্য চলচ্চিত্র ফালা মত একটি বিট, সৃষ্টি করে। এই ধরনের একটা ক্রম, যেমন একটি পরিচিত Coalesced অ্যানিমেশন অনেক অধ্যয়ন, সম্পাদনা, পরিবর্তন এবং পুনরায় নিখুত সহজ।"