Ho bisogno di qualcosa che possa essere copiato su Windows 7. Questa immagine verrà utilizzata nei banner.Creazione di gif animate da una serie di immagini jpeg
risposta
Si può fare questo con ffmpeg
prima convertire le immagini in un video:
ffmpeg -f image2 -i image%d.jpg video.avi
(questo sarà convertire le immagini dalla directory corrente (dal nome image1.jpg, image2.jpg .. .) per un file video chiamato video.avi)
quindi convertire l'avi in gif:.
ffmpeg -i video.avi -pix_fmt rgb24 -loop_output 0 out.gif
È possibile ottenere windows binaries for ffmpeg here.
si può anche fare una cosa simile con mplayer. Vedi Encoding from multiple input image files.
Penso che la linea di comando sarebbe qualcosa di simile:
mplayer mf://*.jpg -mf w=800:h=600:type=jpg -vf scale=160:120 -vo gif89a:fps=3:output=out.gif
(dove 800 & 600 sono la larghezza e l'altezza di origine e 160 & 120 sono la larghezza di destinazione e height.out.gif è il vostro file di destinazione nome)
Ho appena testato entrambi ed entrambi funzionano correttamente. Tuttavia ho ottenuto risultati molto migliori da mplayer dato che sono stato in grado di specificare la risoluzione e il framerate. La tua milizia potrebbe variare e sono sicuro che potresti trovare più opzioni per ffmpeg se guardassi.
Usando la versione recente di mplayer, stampa la sua manpage. –
questo ha un buon punteggio google di ricerca, quindi se si vuole anteporre ai numeri con zeri, usare '% 04d' (numero 4 userebbe 4 posizioni numero con prefisso 0) – user151496
nessun file trovato con il nome' image1d.jpg'! cercando utilizzando cmd – user25
Il ffmpeg a .avi e .avi a .gif funzionato, ma l'unica cosa da notare è che le immagini devono essere nominati nel perfetto ordine crescente numerico per lavorare, senza lacune. Ho cucinato uno script python rapido per rinominare tutte le mie immagini di conseguenza in modo che questo ffmpeg ricetta avrebbe funzionato:
import os
files = [ f for f in os.listdir('.') if os.path.isfile(os.path.join('.',f)) and f.endswith('.jpg') ]
for i, file in enumerate(sorted(files)):
os.rename(file, 'image%03d.jpg' % i)
E poi sono incappato in un approccio molto più semplice di ffmpeg per fare la conversione, che è semplicemente utilizzando lo strumento da riga di comando convert di ImageMagick come questo
convert image%03d.jpg[0-198] animated_gif.gif
non ottiene molto più semplice di quello gente.
Gist qui: https://gist.github.com/3289840
_ "le immagini devono essere nominati nel perfetto ordine crescente numerico" _ - Immagino che tu non sai di '-pattern_type glob', consente di utilizzare i file con tutti i nomi come input, ad esempio, per convertire tutti i PNG nella directory corrente in GIF: 'ffmpeg -framerate 1/10 -pattern_type glob -i '* .png' output.gif' –
Con ImageMagick:
convert *.png a.gif
anche guardare qui: http: // stackoverflow.com/questions/5508945/imagemagick-animated-gif-size-optimization –
ho avuto problemi di qualità da utilizzare file (a causa di trasparenza e di stratificazione) che sono stati fissati utilizzando .jpg invece – ZG101
È possibile utilizzare '-delay' .png per impostare la durata di ciascuna immagine. Si noti che il valore è dato in 1/100 secondi, cioè "-delay 100" ha una velocità di un fotogramma al secondo. – luator
Simon P Stevens' answer quasi mi arrivati:
ffmpeg -f image2 -i image%d.jpg video.avi
ffmpeg -i video.avi -pix_fmt rgb24 -loop_output 0 out.gif
Vediamo se siamo in grado di neaten questo.
Andando attraverso un AVI è inutile. Un -pix_fmt
di rgb24
non è valido, e l'opzione -loop_output
impedisce loop, che io non voglio. Otteniamo:
ffmpeg -f image2 -i image%d.jpg out.gif
Le mie immagini di ingresso vengono etichettati con un numero zero imbottito a 3 cifre e ho 30 di loro (IMAGE_001.jpg, image_002.jpg, ...), quindi ho bisogno di risolvere il di formato
ffmpeg -f image2 -i image_%003d.jpg out.gif
mie foto di ingresso sono dalla mia fotocamera del telefono, sono troppo grandi! Devo ridimensionarli.
ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299 out.gif
Ho anche bisogno di ruotare di 90 gradi in senso orario
ffmpeg -f image2 -i image_%003d.jpg -vf scale=531x299,transpose=1 out.gif
Questa gif giocherà con ritardo pari a zero tra i fotogrammi, che probabilmente non è quello che vogliamo. Specificare il framerate delle immagini in ingresso
L'immagine è solo un po 'troppo grande, quindi mi ritagliare le 100 pixel di cielo. La trasposizione rende difficile, io uso le x sul post-ruotato e valori Y:
ffmpeg -f image2 -framerate 9 -i image_%003d.jpg -vf scale=531x299,transpose=1,crop=299,431,0,100 out.gif
Il risultato finale - arrivare a condividere l'espressione del volto impressionante del mio compagno con il mondo:
sulla base delle risposte di Simon P Stevens e dwurf mi si avvicinò con questa soluzione semplificata:
ffmpeg -f image2 -framerate 1 -i image%d.jpg video.gif
questo si traduce in un tasso di 1 secondo per immagine. Regola il valore framerate
in base alle tue esigenze.
- 1. Creazione di immagini GIF animate utilizzando R
- 2. PHP - Crea semplici GIF animate da due immagini JPEG?
- 3. Creazione di GIF animate con ImageIO?
- 4. Creazione video da serie di immagini?
- 5. Creare gif animate usando la libreria GD
- 6. È possibile rilevare lato client immagini gif animate?
- 7. Il modo più veloce per creare gif animate da mp4
- 8. Sposta una miniatura di immagini animate
- 9. Riproduzione di gif animate con libgdx
- 10. Come rendere funzionanti le GIF animate da Android WebView
- 11. Creare una gif da una serie di mappe Leaflet in R
- 12. Creare un file .gif animato da .jpeg/png
- 13. Creazione di una serie di collezioni generici
- 14. Creazione di una serie di interi casuali
- 15. Esporta pagine PDF in una serie di immagini in Java
- 16. Come generare GIF animate di un manipolo? 8.0.1
- 17. ridimensionamento delle GIF animate mantenendo l'animazione utilizzando java
- 18. Come si gioca a GIF animate in TextView?
- 19. Usare JPEG per le immagini di lancio
- 20. come ottenere immagini gif animate dagli apici degli Appunti del browser?
- 21. C# Creazione di video MP4 da immagini e file mp3
- 22. Creazione di una colonna per enumerare una serie di eventi
- 23. Perché le immagini GIF animate richiedono così tanto tempo per essere caricate?
- 24. Creazione di una serie minima element-element da altre due serie in panda Python
- 25. Estrazione di singoli fotogrammi da una GIF animata su tela
- 26. Durata fotogrammi personalizzata per Gif animate in Python ImageIO
- 27. gif animate congelare in Firefox 4.0 e versioni successive
- 28. Estrazione EXIF da JPEG
- 29. Come faccio a controllare a livello di codice se un'immagine (PNG, JPEG o GIF) è corrotta?
- 30. Java: come posso creare un film da una serie di immagini?
è necessario essere jpeg? jpeg-> anim gif ha probabilmente effetti indesiderati di sfarfallio con un rapporto di compressione peggiore. dovresti usare lossless -> gif o gif-> gif per i migliori risultati di qualità. – tenfour
@tenfour - anche se ciò che hai indicato è perfettamente valido, non è necessariamente una regola empirica. Molto più importante è che i frame condividono colori simili, perché se non lo fanno, la tavolozza di massimo 256 colori di un'immagine GIF condivisa tra i frame produrrà risultati scadenti, indipendentemente dal formato di input e spesso lascerà la gente a chiedersi " perché è venuto fuori granuloso?! " –