Xgifsicle


W Slackware 9.0, 9.1 nie udało mi się uruchomić programu Ganim8 (do tworzenie animowanych gifów). Program ten bazuje na programie gifsicle i ungifsicle. Zastąpiłem więc go opracowanym przez siebie skryptem powłoki, wykorzystującym program Xdialog.

Na początek należy ściągnąć z serwisu http://freshmeat.net program o nazwie Xdialog i go skompilować, co przebiega bezproblemowo.

W drugiej fazie musimy pobrać ze strony domowej projektu http://www.lcdf.org/gifsicle/ program gifsicle oraz skompilować go. Przebiega to bez problemów.

Następnie musimy pobrać skrypt Xgifsicle.tar.gz i rozpakować go do katalogu domowego. Musimy utworzyć w nim katalog Xgifsicle, do którego będą kopiowane pliki gifów oraz katalog tmp. Treść skryptu jest zamieszczona poniżej (linie są łamane tylko na stronie, a nie w skrypcie). W treści należy zmienić nazwę użytkownika andrzej na właściwego:

#!/bin/sh #set -x a=0 b=/home/andrzej c=0 d=0 e=0 f=0 while [ "$a" = "0" ]; do FILE=`Xdialog --stdout --title "Wybieraj pliki i zatwierdzaj OK.\ Potem naciśnij CANCEL" --fselect $b/tmp 30 70` case $? in 0) cp $FILE $b/Xgifsicle;; 1) DIALOG=Xdialog $DIALOG --title "Podaj liczbę kolorów" \ --inputbox "Maksymalnie 256" 10 45 256 \ 2> /tmp/inputbox.tmp.$$ c=$? color=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ DIALOG=Xdialog $DIALOG --title "Podaj odstęp klatek" \ --inputbox "Cyfra 100 oznacza 1 sekundę" 10 45 10 \ 2> /tmp/inputbox.tmp.$$ d=$? delay=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ DIALOG=Xdialog $DIALOG --title "Podaj ilość powtórzeń" \ --inputbox "Podanie cyfry zero \ oznacza ciągłe odtwarzanie" 10 45 0 \ 2> /tmp/inputbox.tmp.$$ e=$? loop=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ gifsicle -d$delay -l$loop -O -k$color \ $b/Xgifsicle/*.gif > $b/nowy.gif DIALOG=Xdialog $DIALOG --title "Tworzenie GIFa zakończone" \ --infobox "" 10 45 10000 DIALOG=Xdialog $DIALOG --title "Zmiana rozmiaru GIFa" \ --inputbox "Jak nic nie wpiszesz to nowy GIF nie \ zostanie utworzony" 10 60 150x150 \ 2> /tmp/inputbox.tmp.$$ f=$? resize=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ gifsicle -l$loop --resize $resize $b/nowy.gif > \ $b/nowy_1.gif DIALOG=Xdialog $DIALOG --title "" \ --infobox "KONIEC" 0 0 3000 exit;; 255) exit;; esac done #Opracował Andrzej Sperczyński 06.12.2003r.

Tworzenie animacji polega na opracowaniu poszczególnych klatek w innych programach np.: w gimpie i na nadaniu im numeracji kolejnej z rozszerzeniem .gif oraz przekopiowaniu do katalogu ~/tmp. Po uruchomieniu programu okno wyboru plików jest ustawiane domyślnie na katalog ~/tmp, skąd należy wybierać pliki do animacji i zatwierdzać klawiszem enter. Po wybraniu interesujących nas plików klikamy na cancel i ustawiamy inne parametry animacji. Sam skrypt łączy te klatki w animację, ustala liczbę kolorów, optymalizuje plik wynikowy (ustawiłem domyślnie), ustala liczbę powtórzeń cyklów animacji, ustawia czas odstępu klatek oraz pozwala na zmianę rozmaiarów gotowej animacji. Plik wynikowy jest zapisywany w katalogu domowym jako nowy.gif, a plik o zmienionych wymiarach jako nowy_1.gif. Jeżeli w okienku zmiana rozmiaru nic nie wpiszemy, to plik nowy_1.gif będzie miał rozmiar zerowy, a plik główny nie ulegnie zmianie. Najlepiej pokażą to zrzuty ekranu:

  
  
  
  
  
  
  

Niekiedy dysponujemy gotową animacją gif, ale chcemy zmienić jej parametry. W tym celu czyścimy katalog Xgifsicle i uruchamiamy program. Znajdujemy nasz plik i akceptujemy klawiszem enter. Potem naciskamy cancel i przechodzimy do ustawień parametrów animacji. Ustawienia modyfikujemy dowolnie oprócz rozmiaru i liczby kolorów, które możemy tylko zmniejszać bez dodatkowych strat na jakości animacji.

A tak wygląda efekt końcowy animacji składającej się z 35 klatek, odstępu 0,1 sekundy, liczby powtórzeń nieokreślonej i ośmiu kolorów:


do góry