Czy istnieje narzędzie do tworzenia gif
animacji z zestawu png
plików?
Próbowałem convert
polecenia z pakietu ImageMagick , ale to nie zawsze się udaje. Mam też kilka problemów z tym:
- Nie umiem powiedzieć, jaki jest postęp.
- Bez względu na to, co spróbuję,
-delay
flaga nie zmienia częstotliwości klatek animacji gif. convert
określa kolejność klatek na podstawie kolejności alfabetycznej nazw plików. Oznacza to, żename500.png
zostaną umieszczone zaraz poname50.png
tym, jakname450.png
mogę to naprawić, dodając 0, ale to denerwujące.
graphics
conversion
imagemagick
Yotam
źródło
źródło
convert
po posortowaniu plików. Prawdopodobnie coś takiego działafiles=$(ls name*png | sort -n -tname -k1); convert $files animation.gif
-monitor
parametr, który śledzi procesOdpowiedzi:
Możesz także spróbować
ffmpeg
utworzyć film z sekwencji obrazów, a następnie przekonwertować film na animację GIF (ponownie używającffmpeg
).źródło
sameq
opcja nie jest już dostępna. Ponadto, dla mnie, to zastępuje oryginalne pliki obrazów i nie tworzy prawidłowego pliku filmu.-sameq
tam kod? Dlaczego w ogóle chciałbyś użyć stratnego formatu wideo (output.mp4
) jako tymczasowego? A jeśli tak, to dlaczego „taka sama jakość” jak na wejściu, zamiast bardzo wysokiej przepływności? Artefaktowanie z tego tylko pogorszy sytuację kodera GIF. Jeśli musiałeś użyć wideo jako tymczasowego, chciałbyś użyć czegoś bezstratnego, takiego jak huffyuv. Lub MJPEG bez transkodowania, po prostu przemodeluj wejściowe jpegi do MJPEG. (-codec:video copy
).convert
jest przydatnym narzędziem służącym do tego celu.cd
do folderu zawierającego pliki png i uruchom następujące polecenie:Źródło: http://ubuntuforums.org/showthread.php?t=1132058
źródło
convert
i pewne problemy z jego użyciem. Twoja odpowiedź nie dotyczy żadnego z nich.6.8.7-4 2013-11-02 Q16
to działało dla mnie.10
oznacza 10 * 10 ms, więc dość szybko. Opóźnienie a100
wynosi 1 sekundę.-dispose previous
lub-dispose 2
jeśli pracujesz z przezroczystymi plikami PNGpic_{0..20..2}.png
rozszerza siępic_0.png
,pic_2.png
aż dopic_20.png
convert
„S--delay
opcja ma zastosowanie tylko do następnego obrazu w wierszu poleceń. Ustawi więcconvert -delay 10 *
tylko opóźnienie pierwszej klatki na 0,1 sekundy. Opcja musi zostać powtórzona:Dla potrzeb sortowania, konwersja nie sortuje ramek, tak jak globowanie powłoki
*
. Jeśli wiesz, że twoje klatki są ponumerowane od 0 do 700, możesz po prostu sam je obliczyć:źródło
convert
,convert -delay 1000 -loop 0 *.png animation.gif
ponieważ dodaje 10 sekund opóźnienia między każdym obrazem.ls
. To znaczy:convert -delay 1000 $(ls -v name*png) output.gif
Aktualizacja:
Użyj
convert
dla png-to-gif, a następnie użyj animacji gifsicle . Nie jest to rozwiązanie typu „jedna aplikacja do zrobienia wszystkiego”, ale na pewno możliwe do wykonania ze skryptami.GIMP może tworzyć animowane gify i zapewnia kontrolę nad czasem / opóźnieniem i powtarzaniem itp
źródło
ImageMagick może generować dobrej jakości animację gif. Sprawdź ten film - http://www.youtube.com/watch?v=OFusYizJ-bA
źródło
convert -delay 200 -loop 0 *.jpg output.gif
ffmeg ważne opcje GIF + dane testowe
Aby uzupełnić tę odpowiedź :
Dane testowe zostały wygenerowane za pomocą: https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
Ważne
ffmpeg
opcje, które chciałem podkreślić to:-patter_type glob
: wygodny sposób wybierania zdjęć-framerate 60
i-r 15
: załóż 60 klatek na sekundę na obrazach wejściowych (ffmpeg
nie wiem inaczej, ponieważ nie ma danych FPS w obrazach jak w formatach wideo), wybierz jeden na 4 obrazy, więc zmniejsz rozmiar (4 == 60 / 15
)-vf scale=512:-1
: ustaw szerokość, wysokość proporcjonalnie, zwykle w celu zmniejszenia rozmiaru i zaoszczędzenia miejscaZobacz też:
Testowane w Ubuntu 18.10, ffmpeg 4.0.2.
źródło
W odniesieniu do pkt 2
Wersja „display” programu ImageMagick, którą mam (ImageMagick 6.7.2-7 2017-01-12) ignoruje ustawienie liczby klatek za pomocą polecenia konwersji w celu utworzenia animowanego gif. Wypróbuj inny program, aby wyświetlić animowany gif, taki jak Firefox.
źródło