Bagaimana saya bisa membagi file .gif animasi menjadi bingkai komponennya?

44

Bagaimana saya dapat dengan mudah membagi file .gif animasi? Saya ingin melihat setiap frame.

Saya benar-benar lebih suka untuk tidak mengekspor setiap frame ke direktori. Saya ingin melihatnya secara terpisah dalam satu aplikasi jika memungkinkan.

Apakah ini mungkin di Linux?

Kris Harper
sumber

Jawaban:

53

Cobalah membukanya dengan The Gimp; Saya percaya ini akan membuka gif animasi dengan satu lapisan per bingkai.

Anda mengatakan Anda tidak ingin membuang semua frame ke file di direktori, tetapi saya akan memberitahu Anda bagaimana cara melakukannya :) instal ImageMagick atau graphicsmagick, lalu:

untuk ImageMagick:

convert animation.gif target.png

untuk grafismagick:

gm convert animation.gif target.png

itu akan menulis bingkai ke target0.png, target1.png, ... dan seterusnya. Anda kemudian dapat memasuki direktori dan menjalankannya eog, itu akan menunjukkan semua frame pada aplikasi yang sama. Ketika Anda tidak lagi membutuhkan bingkai, cukup rm target*.png.

roadmr
sumber
imagemagick sungguh luar biasa !!
fccoelho
1
konversi imagemagic gagal untuk saya, karena tampaknya setiap gambar gif diwakili sebagai lapisan latar belakang transparan baru, dan konversi memberikan lapisan-lapisan transparan itu: upload.wikimedia.org/wikipedia/commons/5/5d/AstarExample.gif
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Saya membuka gif saya di gimp, tetapi saya masih tidak tahu cara melihat setiap frame secara individual - Saya hanya melihat frame terakhir. Saya sedang mengerjakan animasi ini: /tmp/Non-Native-American-Nations-Territorial-Claims-over-NAFTA-countries-1750-2008.gif
nealmcb
3
GraphicsMagick harus berbentuk gm convert some-image.gif +adjoin some-image%d.pnguntuk bekerja. Atau, gm convert some-image.gif -coalesce +adjoin some-image%d.pnguntuk subframe ukuran yang bervariasi dengan berbagai offset.
l --marc l
1
Yang ditentukan convertmelewatkan -coalesceopsi, yang diperlukan untuk apa yang diharapkan pengguna.
Marcus
41

Jika berbagai frame memiliki area transparan dan saling membangun, Anda dapat menggunakan convertperintah dengan opsi " -coalesce" untuk menghasilkan satu set file target-0.png, target-1.png dll, yang masing-masing menggabungkan urutan sebelumnya gambar-gambar:

convert -coalesce animation.gif target.png
NemoM
sumber
1
Komentar bagus tetapi perlu penjelasan. Pada dasarnya ini memecahkan masalah yang dimiliki @cirosantilli dengan ImageMagick mengembalikan pembaruan yang tampak disukai ke area layar tertentu. -coalesce menggabungkan pembaruan tersebut untuk memberi Anda rendering yang telah selesai.
AnthonyVO
3
Perlu dicatat bahwa (pada ImageMagick versi 6.7.7) tampaknya ada beberapa kebocoran memori: jangan coba -coalesce- coba dengan .gifscreencasts yang panjang , mungkin akan mengkonsumsi semua memori yang tersedia dan mungkin menggantung seluruh sistem Anda.
leftaroundabout
4
Anda dapat menentukan nama file output melalui sesuatu seperti:convert -coalesce animation.gif target.%04d.png
Trevor Boyd Smith
2

bagi saya, dengan ImageMagick(versi info: 6.8.9-9 Q16 x86_64 2017-07-31)

convert gif.gif gif.pdf

membuat pdf dengan setiap halaman menjadi bingkai dari input gif, maka Anda bisa halaman melalui frame dalam aplikasi tampilan pdf pilihan Anda

praktikum
sumber
Itu tampaknya terlalu rumit dan tidak seperti yang diinginkan OP.
David Foerster
Untuk mendapatkan setiap frame sebagai halaman dalam .pdf adalah ide yang bagus, cukup pertimbangkan bahwa metode ini mungkin bermasalah, dan Anda perlu mengubah aplikasi .
loved.by.Yesus
2

Gunakan mpv. Buka di desktop. Seret gif ke dalamnya. Ambil tangkapan layar dari bingkai / yang Anda inginkan dengan kunci s. Anda bahkan dapat berhenti sebentar jika gif Anda cepat. Cara yang sangat cepat.

===========

Anda mungkin ingin menggunakan pengaturan ini terlebih dahulu [setelah menetapkan Anda tidak perlu melakukannya lagi] :

gedit ~/.config/mpv/mpv.conf

dan masukkan dan simpan:

--screenshot-format Pilihan: jpg jpeg png (default: jpg)

untuk kualitas png tertinggi:

--screenshot-format=png
--screenshot-png-compression=9

atau jika Anda ingin jpg

--screenshot-jpeg-quality Integer (0 hingga 100) (default: 90)

Gunakan mpv --list-options untuk detail lainnya

shantiq
sumber
Hai :) kembali andrew.46. mencoba Gimp dan merasa frustrasi. tidak banyak yang mpv tidak bisa lakukan:]
shantiq