Анимираните GIF са станали много популярни през последните няколко години и популярността им нараства с всеки изминал ден. Не съм съгласен? Помислете за това: над огромните 23 милиона GIF се изпращат всеки ден в Tumblr. Така че ясно има публика за този формат на изображението.

Това привлича ли ви да създавате GIF? Ако отговорът е "да", ще се радвате да знаете, че съществуват различни графични GIF редактори, които работят на различни платформи на операционната система. Ако обаче сте на Linux и търсите инструмент за команден ред за тази работа, не търсете повече, тъй като ще обсъждаме Gifsicle - инструмент, който ви позволява лесно да играете с анимирани GIF файлове.

Забележка : версия 1.78 на Gifsicle е използвана за всички примери, споменати в тази статия.

Gifsicle

Gifsicle е инструмент за командния ред за създаване, редактиране и получаване на информация за GIF изображения и анимации. Според официалната уеб страница на инструмента, Gifsicle предлага няколко функции, включително оптимизиране на изображенията, както и контрол върху преплетените, коментарите, looping и прозрачността. Той създава добре поддържани GIF: премахва излишните цветове, използва само локални цветови таблици, ако е абсолютно необходимо (локални цветни таблици да отделят място и да предизвикат разкриване на артефакти) и т.н. "

Изтегляне и инсталиране

В Ubuntu (както и в други системи, базирани на Debian) можете лесно да изтеглите и инсталирате инструмента Gifsicle, като използвате следната команда:

 sudo apt-get инсталирате gifsicle 

Друга възможност е да го създадете от нулата, като използвате неговия изходен код или да използвате предварително създадена двоична форма - и двете са достъпни за изтегляне от официалната уеб страница на инструмента.

Създайте анимиран GIF с Gifsicle

Да предположим, че имате куп jpg файлове и искате да създадете анимиран GIF файл от тях. Ето как да го направите:

Тъй като командата gifsicle работи само в GIF файлове, първо трябва да конвертирате всички .jpg файлове във формат .gif, като използвате командата convert :

 конвертиране на [input-file-name] .jpg [изход-файл-име] .gif 

Ако броят на JPG файлове е голям, можете да използвате следната команда, за да ги конвертирате:

 convert '* .jpg [widht, for ex: 300x]' преоразмерен% 03d.gif 

След като се направи преобразуването от jpg в gif, общата команда за комбиниране на отделни GIF в последната анимирана команда е както следва:

 gifsicle [скорост на анимацията] [брой пъти на линия] [input jpgs]> output.gif 

В горната команда "скоростта на анимация" може да бъде зададена чрез флага " --delay, докато "брой пъти на цикъл" може да бъде зададена чрез флаг --loopcount .

Например, имах следната група от JPG изображения.

Следващата е командата, която използвах за създаване на анимиран GIF от гореизброените изображения:

 gifsicle --delay = 80 --loopcount = завинаги * .gif> out.gif 

И тук е out.gif.

Моля, имайте предвид, че стойността на - --delay представлява забавянето между кадрите в стотни от секундата. Също така, аз използвах "завинаги" като стойност за --loopcount . Това е да се уверите, че анимацията не спира. Можете да използвате цялото число, ако искате анимацията да бъде ограничена до този брой отброявания.

Извличане на отделни рамки

Gifsicle също ви позволява лесно да извличате индивидуални кадри от анимиран GIF. Ето един пример за това как го направих:

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

Командата по-горе извади първия кадър от анимирани out.gif. Просто продължих да променям цялото число след "#" и името на изходния файл и успяхме да извлечем всички рамки от out.gif.

Ако броят на кадрите в анимирания GIF е доста висок и искате да ги извлечете, тогава - съвсем разбираемо - ще бъде непрактично да изпълните горната команда отново и отново ръчно. В този случай можете да стартирате командата в цикъл от скрипт на shell.

Друго нещо, което си заслужава да се спомене, е, че можете да използвате и отрицателни стойности с "#". Отрицателните стойности се отнасят за рамки от края. Например "# -1" ще ви донесе последния кадър.

Редактиране на анимиран GIF

С Gifsicle можете лесно да редактирате анимирани GIF файлове. Например, следната команда създава нов "out.gif", който не е нищо друго освен старата "out.gif" с първата си рамка, заменена със сливането на "a.gif" и "b.gif":

 gifsicle --delay = 80 --loopcount = завинаги -b out.gif --replace '# 0' a.gif b.gif 

По същия начин можете да използвате флага --delete за изтриване на рамки. Например, следната команда изтрива първия кадър на "out.gif", като резултатът е "out-new.gif":

 gifsicle out.gif - изтрийте '# 0'> out-new.gif 

Не само можете да изтривате и замествате, но можете също така да добавяте нови рамки към анимиран GIF. Например, - --append ви позволява да добавяте рамки към края на анимиран GIF. Ето един пример:

 gifsicle out-new.gif - добавете a.gif> out-new-appended.gif 

Командата по-горе ще добави рамката "a.gif" към анимирания "out-new.gif" и ще изведе анимирани "out-new-appended.gif" като изход.

Можете също така да използвате флаг --insert-before да добавите рамка (или няколко кадъра) навсякъде в съществуващ анимиран gif.

Преобразуване на изображения

Gifsicle предлага и някои опции за преобразуване на изображения. Например, можете да използвате инструмента за преоразмеряване на GIF изображения. Можете да използвате --resize [width]x[height] за преоразмеряване на вашето gif изображение до определена ширина и височина. От страницата на командата: " Ширината или височината може да са долна част" _ ". Ако аргументът е widthx_, тогава изходният GIF се мащабира до ширина на пикселите, без да се променя съотношението му. "

Ето как направих операция за преоразмеряване на "out.gif":

 gifsicle out.gif - преоразмерете 150x_> out-resize.gif 

Горната команда създаде файл с име "out-resize.gif", който не е нищо друго освен размера "out.gif" с размери 150px.

заключение

Gifsicle може да не е много популярен инструмент за създаване / редактиране на GIF, но със сигурност е много полезен. И нека да ви обясня, че всичко, което сме обсъждали тук, е само върхът на айсберга, тъй като инструментът предлага многобройни възможности / възможности. Струва ми се, че си струва да опитате - научете повече за това тук.