Så här skapar och redigerar du animerade GIF-filer från kommandoraden i Ubuntu
Animerade GIF har blivit väldigt populära de senaste åren, och deras popularitet växer med varje dag som går. Håller inte med? Tänk på det här: Över en jättestor 23 miljoner GIF läggs ut till Tumblr varje dag. Så tydligt finns det en publik för detta bildformat.
Låter det dig att skapa GIF? Om ja, är du glad att veta att det finns olika GUI-baserade GIF-redaktörer som arbetar på olika operativsystem. Om du befinner dig på Linux och letar efter ett kommandoradsverktyg för det här jobbet, leta inte längre eftersom vi kommer att diskutera Gifsicle - ett verktyg som låter dig enkelt spela med animerade GIF-filer.
Notera : version 1.78 av Gifsicle användes för alla exempel som nämns i denna artikel.
gifsicle
Gifsicle är ett kommandoradsverktyg för att skapa, redigera och få information om GIF-bilder och animeringar. Enligt verktyget officiella hemsida erbjuder Gifsicle flera funktioner, inklusive bildoptimering samt kontroll över interlacing, kommentarer, looping och transparens. Den " skapar välbetalda GIF: tar bort överflödiga färger, använder bara lokala färgtabeller om det absolut måste (lokala färgbord slösar ut utrymme och kan orsaka visning av artefakter) etc. "
Hämta och installera
På Ubuntu (liksom andra Debian-baserade system) kan du enkelt hämta och installera Gifsicle-verktyget med följande kommando:
sudo apt-get install gifsicle
Alternativt kan du också bygga den från början med hjälp av källkoden eller använda ett förbyggt binärt - båda är tillgängliga för nedladdning från verktygets officiella webbsida.
Skapa animerad GIF med Gifsicle
Antag att du har en massa jpg-filer och vill skapa en animerad giffil ut av dem. Så här gör du det:
Eftersom gifsicle
kommandot bara fungerar på gif-filer måste du först konvertera alla .jpg-filerna till .gif-formatet med hjälp av convert
kommandot:
konvertera [input-fil-namn] .jpg [output-fil-namn] .gif
Om antalet jpg-filer är stora kan du använda följande kommando för att konvertera dem alla:
konvertera '* .jpg [widht, till exempel: 300x]' resized% 03d.gif
När omvandlingen från jpg till gif är klar, är det allmänna kommandot att kombinera enskilda gifs till en sista animerad en som följer:
gifsicle [animationshastighet] [antal gånger i loop] [input jpgs]> output.gif
I ovanstående kommando kan "animationshastigheten" ställas in med --delay
flaggan, medan "antal gånger till loop" kan ställas in med hjälp av flagg- --loopcount
.
Till exempel hade jag följande grupp jpg-bilder.
Följande är det kommando jag brukade producera en animerad gif utifrån ovanstående bilder:
gifsicle --delay = 80 --loopcount = forever * .gif> out.gif
Och här är out.gif.
Observera att värdet av - --delay
representerar fördröjningen mellan bildrutor i hundra sekunder av en sekund. Också, jag använde "för alltid" som ett värde till --loopcount
flaggan. Detta är för att se till att animeringen inte slutar. Du kan använda något heltal värde om du vill att animeringen ska begränsas till det antal räkningar.
Extrahera enskilda ramar
Gifsicle låter dig också enkelt extrahera enskilda ramar från en animerad gif. Här är ett exempel på hur jag gjorde det:
gifsicle out.gif '# 0'> first-frame.gif
Kommandot ovan extraherade den första ramen från den animerade out.gif. Jag höll just ändrade heltalet värde efter "#" och utgångsfilnamnet och kunde extrahera alla ramar från out.gif.
Om antalet ramar i det animerade gifet är ganska högt, och du vill extrahera dem alla, då - det är ganska förståeligt - är det opraktiskt att köra kommandot ovan och om igen manuellt. I så fall kan du köra kommandot i en loop från ett skalskript.
En annan sak som är värt att nämna här är att du även kan använda negativa värden med "#." Negativa värden avser ramar från slutet. Till exempel kommer "# -1" att ge dig den sista bilden.
Redigera animerad GIF
Med Gifsicle kan du också enkelt redigera animerade GIF-filer. Till exempel skapar följande kommando en ny "out.gif" som bara är den gamla "out.gif" med sin första ram ersatt med sammanslagningen av "a.gif" och "b.gif":
gifsicle --delay = 80 --loopcount = forever -b out.gif --replace '# 0' a.gif b.gif
På samma sätt kan du använda flaggan --delete
att radera ramar. Till exempel raderar följande kommando den första ramen för "out.gif" med det resulterande gifet som är "out-new.gif":
gifsicle out.gif - delete '# 0'> out-new.gif
Du kan inte bara ta bort och ersätta, men du kan också lägga till nya ramar till en animerad GIF. Till exempel kan du lägga till ramar mot slutet av ett animerat gif. Här är ett exempel:
gifsicle out-new.gif --append a.gif> out-new-appended.gif
Kommandot ovan kommer att lägga till "a.gif" ramen till den animerade "out-new.gif" och producera den animerade "out-new-appended.gif" som utgång.
Du kan också använda --insert-before
att lägga till en ram (eller flera ramar) var som helst i ett befintligt animerat gif.
Bildtransformation
Gifsicle erbjuder också vissa bildtransformationsalternativ. Du kan till exempel använda verktyget för att ändra storlek på gifbilder. Du kan använda --resize [width]x[height]
att ändra storlek på din gif bild till en viss bredd och höjd. Från kommandot man-sida: " Bredden eller höjden kan vara en understrykning" _ '. Om argumentet är widthx_, blir utdata GIF skalat till bredd pixlar breda utan att ändra dess bildförhållande. ”
Så här utförde jag en resize-operation på "out.gif":
gifsicle out.gif - resize 150x_> out-resize.gif
Ovannämnda kommando skapade en fil med namnet "out-resize.gif" som var något annat än en storleksändrad "out.gif" med 150px bredd.
Slutsats
Gifsicle kan inte vara ett mycket populärt GIF skapande / redigeringsverktyg, men det är verkligen en mycket användbar. Och låt mig klargöra att det som vi diskuterat här bara är ett tips på isberget, eftersom verktyget erbjuder en mängd funktioner / alternativ. Jag sak är värt att prova - läs mer om det här.