Animerede GIF'er er blevet rigtig populære i de sidste par år, og deres popularitet vokser med hver dag. Er det ikke enig? Tænk over dette: Over en kæmpestor 23 millioner GIFs bliver sendt til Tumblr hver dag. Så klart er der et publikum for dette billedformat.

Tillader det dig at oprette GIF'er? Hvis ja, vil du være glad for at vide, at der findes forskellige GUI-baserede GIF-redaktører, der arbejder på forskellige OS-platforme. Men hvis du er på Linux og leder efter et kommandolinjeværktøj til dette job, så kig ikke længere, da vi vil diskutere Gifsicle - et værktøj, der giver dig mulighed for nemt at spille med animerede GIF'er.

Bemærk : version 1.78 af Gifsicle blev brugt til alle eksempler, der er nævnt i denne artikel.

Gifsicle

Gifsicle er et kommandolinjeværktøj til oprettelse, redigering og information om GIF-billeder og animationer. Ifølge værktøjets officielle webside tilbyder Gifsicle flere funktioner, herunder billedoptimering samt kontrol over interlacing, kommentarer, looping og gennemsigtighed. Det " skaber velopdragen GIF'er: fjerner overflødige farver, bruger kun lokale farveborde, hvis det absolut skal (lokale farveborde spildrum og kan forårsage visning af artefakter) osv. "

Download og installation

På Ubuntu (samt andre Debian-baserede systemer) kan du nemt downloade og installere Gifsicle-værktøjet ved hjælp af følgende kommando:

 sudo apt-get install gifsicle 

Alternativt kan du også bygge det fra bunden ved hjælp af kildekoden eller bruge en præbygget binær - begge er tilgængelige for download fra værktøjets officielle webside.

Opret animeret GIF med Gifsicle

Antag at du har en masse jpg-filer og vil oprette en animeret gif-fil ud af dem. Sådan gør du det:

Da gifsicle kommandoen kun fungerer på gif-filer, skal du først konvertere alle .jpg-filerne til .gif-format ved hjælp af convert kommandoen:

 konvertere [input-fil-navn] .jpg [output-fil-navn] .gif 

Hvis antallet af jpg-filer er stort, kan du bruge følgende kommando til at konvertere dem alle:

 konvertere '* .jpg [widht, for eksempel: 300x]' ændret% 03d.gif 

Når konverteringen fra jpg til gif er færdig, er den generelle kommando at kombinere individuelle gifs til en endelig animeret en som følger:

 gifsicle [animationshastighed] [antal gange til sløjfe] [input jpgs]> output.gif 

I den ovennævnte kommando kan "animationshastigheden" indstilles ved hjælp af --delay flaget, mens "antal gange til sløjfe" kan indstilles ved hjælp af --loopcount flag.

For eksempel havde jeg følgende gruppe jpg-billeder.

Følgende er kommandoen, jeg plejede at producere et animeret gif ud af ovenstående billeder:

 gifsicle --delay = 80 --loopcount = forever * .gif> out.gif 

Og her er out.gif.

Vær opmærksom på, at værdien af ​​- --delay repræsenterer forsinkelsen mellem rammer i hundrededele af et sekund. Også, jeg brugte "for evigt" som en værdi til --loopcount flag. Dette er for at sikre, at animationen ikke stopper. Du kan bruge en heltalværdi, hvis du vil have animationen begrænset til det antal tæller.

Udtræk individuelle rammer

Gifsicle giver dig også mulighed for nemt at udtrække individuelle rammer fra et animeret gif. Her er et eksempel på, hvordan jeg gjorde det:

 gifsicle out.gif '# 0'> first-frame.gif 

Kommandoen ovenfor udviste den første ramme fra den animerede out.gif. Jeg har lige ved med at ændre heltalværdien efter "#" og outputfilnavnet og kunne udvinde alle rammer fra out.gif.

Hvis antallet af rammer i det animerede gif er ret højt, og du vil udtrække dem alle, så vil det - upåklageligt - være upraktisk at køre ovenstående kommando igen og igen manuelt. I så fald kan du køre kommandoen i en loop fra et shell script.

En anden ting værd at nævne her er, at du også kan bruge negative værdier med "#." Negative værdier henviser til rammer fra slutningen. For eksempel vil "# -1" bringe dig den sidste ramme.

Rediger Animeret GIF

Med Gifsicle kan du også nemt redigere animerede GIF'er. F.eks. Skaber følgende kommando en ny "out.gif", som kun er den gamle "out.gif" med sin første ramme udskiftet med sammenlægningen af ​​"a.gif" og "b.gif":

 gifsicle --delay = 80 --loopcount = forever -b out.gif --replace '# 0' a.gif b.gif 

På samme måde kan du bruge --delete flag til at slette rammer. F.eks. Sletter den følgende kommando den første ramme af "out.gif" med det resulterende gif som "out-new.gif":

 gifsicle out.gif - delete '# 0'> out-new.gif 

Du kan ikke kun slette og erstatte, men du kan også tilføje nye rammer til en animeret GIF. For eksempel kan - --append lade dig tilføje rammer i slutningen af ​​et animeret gif. Her er et eksempel:

 gifsicle out-new.gif --append a.gif> out-new-appended.gif 

Kommandoen ovenfor vil tilføre "a.gif" -rammen til den animerede "out-new.gif" og producere den animerede "out-new-appended.gif" som output.

Du kan også bruge --insert-before flag til at tilføje en ramme (eller flere billeder) hvor som helst i et eksisterende animeret gif.

Billedtransformation

Gifsicle tilbyder også nogle image transformation muligheder. Du kan f.eks. Bruge værktøjet til at ændre størrelsen på gifbilleder. Du kan bruge - --resize [width]x[height] flag for at ændre størrelsen på dit gif billede til en bestemt bredde og højde. Fra kommandos man side: " Bredden eller højden kan være en understregning '_'. Hvis argumentet er widthx_, bliver output GIF skaleret til bredde pixels bred uden at ændre dens billedforhold.

Sådan har jeg udført en størrelsesoperation på "out.gif":

 gifsicle out.gif --resize 150x_> out-resize.gif 

Ovennævnte kommando producerede en fil med navnet "out-resize.gif", som ikke var andet end en størrelse "out.gif" med 150px bredde.

Konklusion

Gifsicle er måske ikke et meget populært GIF-skab / redigeringsværktøj, men det er bestemt en meget nyttig. Og lad mig gøre det klart, at det, som vi har diskuteret her, kun er et tip på isbjerget, da værktøjet tilbyder en overflod af funktioner / muligheder. Jeg er det værd at prøve - læs mere om det her.